最近用flup+flask+nginx+mysql开发后端程序时遇到了不少问题,现在整理一下。
flup+flask这个组合应该是支持多线程并发的,那么在并发程序中,不可以使用mysql全局游标cursor。而mysql的错误提示压根看不出问题所在:你的主机中的软件关闭了一个已建立的连接。也可能是我太菜,没看出来。。
所以要在每一个线程里申请cursor,使用完后关闭,注意,关闭前必须读取cursor的所有内容,否则报错。
mysql的连接我使用的是官方的连接件,它有一个连接时长限制,超时断开连接。在申请cursor时有一个错误提示,中文意思大概是mysql连接无效。
这里可以用ping方法检测
try:
conn.ping()
except:
conn=连接数据库的语句
此外,并发测试时发现偶尔会出现查询时丢失mysql连接的错误,原因不详,望大佬赐教。