thinkqueue+supervisor,任务跑的时候,脚本出现 General error: 2006 MySQL server has gone away,这个问题应该是从哪方面去入手处理好点,网上找不到好的解释,麻烦大佬看看,个人感觉是任务开始跑了,第一次进来消息,数据库链接,如果后续很长时间没有消息进来,就没有数据库操作,导致 MySQL 超时,后续就一直在尝试重新链接,但是链接不上
thinkqueue+supervisor,任务跑的时候,脚本出现 General error: 2006 MySQL server has gone away,这个问题应该是从哪方面去入手处理好点,网上找不到好的解释,麻烦大佬看看,个人感觉是任务开始跑了,第一次进来消息,数据库链接,如果后续很长时间没有消息进来,就没有数据库操作,导致 MySQL 超时,后续就一直在尝试重新链接,但是链接不上
|
yemoluoFeb 12, 2019
1
任务不多,断了重链
|
|
pynixFeb 12, 2019
2
跑路。。
|
|
zengzizhaoFeb 12, 2019
3
处理 2006,出现时重新连一次 mysql
|
|
moultFeb 12, 2019 via iPhone
4
跟连接池一样,一分钟左右就去查询一次 select 1 保活即可。
|
|
oldmatchFeb 12, 2019
5
为啥需要这样
|
|
Trim21Feb 12, 2019
6
跑路的翻译很灵性...
|
|
zengzizhaoFeb 12, 2019
7
某个长连接很久没有新的请求发起,达到了 server 端的 timeout,被 server 强行关闭。
此后再通过这个 connection 发起查询的时候,就会报错 server has gone away |
|
9
@zengzizhao 这样子的话这个 connection 能调用关闭连接吗,然后我在重新连接一次
|
|
yc8332Feb 12, 2019
10
1.mysql 服务器端有配置的,空闲多久会被断掉,这个可以设置一下
2.可以把队列进程定期重启一下(也可以避免内存泄露) 3.修复框架的 bug,mysql 断线重连肯定有 bug。。 这几种方式都可以修复这个问题 |
|
runAllFeb 12, 2019 via iPhone
11
ini_set('default_socket_timeout', -1);
看看是不是因为链接超时了 |
|
runningmanFeb 12, 2019
12
早遇到了。改了 tp 的源码,
|
|
13
@runningman 虽然改源码是不好的,但是请问你改的啥,真香
|
|
runningmanFeb 12, 2019
14
@zxcf 源码不知道给你是否合适。其实感动很简单啊。楼上的几位其实已经说了。
|
|
4DAX07B8Kle4Dm6TFeb 12, 2019 via iPhone
15
我也遇到过,连接断开导致的,开始 tp5 的断线重连就可以了
|
|
wo642436249Feb 13, 2019
16
mysql 主动断开连接了,可以在操作前,判断下连接是否可用,如果不可用,则删除之前的断开的连接,重新建立连接就行,tp5 中有相关的配置了
|
|
echo404Feb 13, 2019
17
TP5 中可以直接配置数据库断线重连,将 break_reconnect 参数设置为 true 就行
|
|
awanganddongDec 4, 2020
19
标记一下
|