用多线程通过 pymysql 向 mysql 写入数据,报错 “ Packet sequence number wrong",是什么原因呢?
1
idblife 2017-04-28 14:09:59 +08:00
多线程的策略有问题,google 一下就明白了
另外这个如果想找大家帮忙,需要贴源代码出来 |
2
rocksolid 2017-04-28 14:10:34 +08:00
升级 pymysql
|
3
cmlz 2017-04-28 14:13:34 +08:00
换个 pymysql 版本试试?
|
4
maiganne OP @idblife 我发现每启动一个线程,就要进行一次与数据库的连接,conn=pymysql.connect(**database),这样就不会报错,而所有线程共用一个连接对象 conn 就会出错,不知道这是什么原因
|
5
daybyday 2017-04-28 14:29:43 +08:00
几种解决方案:
1. 每个线程拥有自己的连接 2. 所有线程共用一个连接,加锁互斥使用此连接 3. 所有线程共用一个连接池,需要考虑线程总数和连接池连接数上限的问题 |