我正在进行在线评判。我正在使用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}}或已由图书馆处理。