多线程中mysql超时和连接丢失

时间:2013-07-01 12:24:18

标签: python mysql multithreading python-2.7

我正在进行在线评判。我正在使用python 2.7和Mysql(因为我正在处理后端部分)

我的方法:

我创建了一个主线程,它从数据库中提取提交(一次10个)并将它们放入队列中。然后我有多个线程从队列中提取,评估它并将结果写回数据库。

我的怀疑:
1.主线程和其他线程分配了自己的数据库连接 开始。但我想这不是一个好的过程,因为有时候我得到错误:Lost connection to mysql server while querying我想是在数据库连接的资源耗尽的时候。然后我查了psqlpool。所以我想知道是否连接 由游泳池提供的是专用的或共享的(我想要专用)。

2.当我停止主线程所有其他线程停止时(因为它们的守护进程设置为true)但数据库连接未关闭(因为我通过Ctrl-Z停止主线程)。所以下次我再次 启动我的程序有Lock wait timeout exceeded; try restarting transaction的问题。这是由于先前的连接没有关闭。比从show full processlist手动查杀还有其他任何方法。如果{我也将如何解决它{1}}或已由图书馆处理。

0 个答案:

没有答案