怎么分析pymysql非线程安全导致的故障


今天就跟大家聊聊有关怎么分析pymysql非线程安全导致的故障,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。mysqldb 这个python 驱动只支持到 python 2 .转到python 3 后. 无法使用了.启用 pymysql 这个驱动.在投入生产后, 发现了一些问题.在使用较大规模的 for id in [list]: db.query (xxxxxxxxx) 查询数据库的时候, 出现了一些比较奇怪的网络连接层面的报错.数据报 的 头字节 格式错误.如果只是执行单个查询则是不会报错.经过排查, 发现这是pymysql 的bug 或者缺陷.即 PYmysql 不是线程安全的. 由于我们自己的组件 dba模块.对数据库查询做了包装.导致 在某些情况情况下. py免费云主机域名thon 的代码优化模块.对代码的优化, 出现了并行的情况.即前一个sql 查询没有返回的情况下, 另一个线程启动了并从同一个数据库句柄读取数据.导致了 数据报的格式错误.改进方案:1. 对数据库的连接 增加线程锁. 每一次查询 都加锁. 在异常处理中也要同时加上解锁代码.2. 更换为mysql.com 提供的 官方的 mysql-connector-python 驱动. 目前没有发现问题.看完上述内容,你们对怎么分析pymysql非线程安全导致的故障有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注云编程开发博客行业资讯频道,感谢大家的支持。

相关推荐: 案例分享,Appium+Python实现APP启动页跳转到首页

下面以 MSN news 为例,实现启动APP后跳转到首页的功能,包含使用list进行元素定位、try except else 进行是否首次启动APP判断,logging 进行日志记录等功能。 一、场景: 1.启动APP后连续跳过welcom、interest…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 02/03 11:23
Next 02/03 11:23