我们本地数据库data_account表大概有个2W个账号,其中账号有个认证状态,和使用数据量需要同步第三方数据(分别叫做接口A和接口B),现在我需要每1分钟都去同步这2W个账号的认证状态和对应账号的数据使用量,然后更新数据到本地mysql数据表。第三方有限制并发请求不能超过50。
百度了一圈,都是建议用Go之类的,因为不懂Go,然后大概用了下别人python代码(每次并发50),发现老是出现:2013 (HY000): Lost connection to MySQL server during query,用了连接池也没解决。所以问问workerman是否有相关实现方案。
开消费队列去请求就好了,不能超过50并发的话?那你这样一分钟查不完2W个账户的信息吧
每秒50并发 ,你是如何在60秒内处理完2W的数据的 ,你最多也就处理3000呀
我用swoole测试一分钟能同步1500个号码左右
python连接数据库确实容易出现2013错误。
建议解决方法一:
连接数据库后所有请求都用这一个connect。不同的请求使用不同的cursor。
建议解决方法二:
使用python的asyncio协程+aiomysql效果比pymysql好一些,高并发数据请求现在基本上都会用asynciod的。但学习成本比threading大。
建议解决方法三:
使用php连接数据库,python直接访问该php做成的简易接口。从而实现查询和更新mysql,效果比python直连MySQL稳定许多。