我正在做一名在线法官。我正在使用 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
还有其他方法。另外我们将如何解决它以防万一psqlpool
或已由图书馆处理。