workman使用官方数据库连接类,连接静置几分钟后,再次使用执行查询语句,需要几十分钟才有结果

li20201108

使用官方的mysql类,在onWorkStart时初始化连接,在onMessage时使用。workman刚启动时,执行sql语句很正常,静置几分钟后,再次使用,则出现阻塞,执行一条sql要阻塞几十分钟才有结果返回。(阻塞在数据库是通过打印lsof后得出的结果)
数据库为阿里云数据库,数据库的断开连接时间长为8小时
同一个服务器中,还有thinkphp非常驻内存的项目,操作同一个数据库的同一个表就不会出现这个现象。

请教各位大神,有没有好的调试方法去定位原因,或者有没有大神遇到过这个问题,感激不尽,解决了两天了,真是寝食难安呀,快要疯掉了。同样的代码,在开发环境没有任何问题。

阅读 649
2个回答

walkor

在onWorkerStart里设置个定时器,每隔50秒 执行 select 1, 防止云数据库因为连接长时间不通讯被清理。

  • li20201108 2020-12-08

    初步试了一下可以啦,感谢大佬!!!赶紧不紧,感激涕零!!!

li20201108

这个方法好用,感谢walkor的帮助!

  • 暂无评论