thinkPhP5.1 框架开发订阅消息过程中遇到 MySQL 跑路的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxcf
V2EX    PHP

thinkPhP5.1 框架开发订阅消息过程中遇到 MySQL 跑路的问题

  •  
  •   zxcf 2019-02-12 17:40:44 +08:00 6880 次点击
    这是一个创建于 2450 天前的主题,其中的信息可能已经有所发展或是发生改变。

    thinkqueue+supervisor,任务跑的时候,脚本出现 General error: 2006 MySQL server has gone away,这个问题应该是从哪方面去入手处理好点,网上找不到好的解释,麻烦大佬看看,个人感觉是任务开始跑了,第一次进来消息,数据库链接,如果后续很长时间没有消息进来,就没有数据库操作,导致 MySQL 超时,后续就一直在尝试重新链,但是链接不上

    第 1 条附言    2019-02-14 09:54:28 +08:00
    TP5.0.6 版本已经修复了这个问题,加入了断线重连机制,在数据库配置文件中开启 break_recOnnect=true 就可以了
    19 条回复    2020-12-04 09:53:02 +08:00
    yemoluo
        1
    yemoluo  
       2019-02-12 17:45:22 +08:00
    任务不多,断了重链
    pynix
        2
    pynix  
       2019-02-12 17:48:43 +08:00
    跑路。。
    zengzizhao
        3
    zengzizhao  
       2019-02-12 17:53:55 +08:00
    处理 2006,出现时重新连一次 mysql
    moult
        4
    moult  
       2019-02-12 17:54:54 +08:00 via iPhone
    跟连接池一样,一分钟左右就去查询一次 select 1 保活即可。
    oldmatch
        5
    oldmatch  
       2019-02-12 17:56:03 +08:00
    为啥需要这样
    Trim21
        6
    Trim21  
       2019-02-12 17:56:05 +08:00
    跑路的翻译很灵性...
    zengzizhao
        7
    zengzizhao  
       2019-02-12 17:56:07 +08:00
    某个长连接很久没有新的请求发起,达到了 server 端的 timeout,被 server 强行关闭。

    此后再通过这个 connection 发起查询的时候,就会报错 server has gone away
    oldmatch
        8
    oldmatch  
       2019-02-12 17:56:35 +08:00
    @moult 为啥需要这样呢?
    zxcf
        9
    zxcf  
    OP
       2019-02-12 18:00:15 +08:00
    @zengzizhao 这样子的话这个 connection 能调用关闭连接吗,然后我在重新连接一次
    yc8332
        10
    yc8332  
       2019-02-12 18:01:46 +08:00
    1.mysql 服务器端有配置的,空闲多久会被断掉,这个可以设置一下
    2.可以把队列进程定期重启一下(也可以避免内存泄露)
    3.修复框架的 bug,mysql 断线重连肯定有 bug。。

    这几种方式都可以修复这个问题
    runAll
        11
    runAll  
       2019-02-12 18:05:37 +08:00 via iPhone
    ini_set('default_socket_timeout', -1);
    看看是不是因为链接超时了
    runningman
        12
    runningman  
       2019-02-12 18:16:58 +08:00
    早遇到了。改了 tp 的源码,
    zxcf
        13
    zxcf  
    OP
       2019-02-12 18:31:34 +08:00
    @runningman 虽然改源码是不好的,但是请问你改的啥,真香
    runningman
        14
    runningman  
       2019-02-12 21:06:04 +08:00
    @zxcf 源码不知道给你是否合适。其实感动很简单啊。楼上的几位其实已经说了。
    4DAX07B8Kle4Dm6T
        15
    4DAX07B8Kle4Dm6T  
       2019-02-12 22:59:56 +08:00 via iPhone
    我也遇到过,连接断开导致的,开始 tp5 的断线重连就可以了
    wo642436249
        16
    wo642436249  
       2019-02-13 17:12:52 +08:00
    mysql 主动断开连接了,可以在操作前,判断下连接是否可用,如果不可用,则删除之前的断开的连接,重新建立连接就行,tp5 中有相关的配置了
    echo404
        17
    echo404  
       2019-02-13 22:27:15 +08:00
    TP5 中可以直接配置数据库断线重连,将 break_reconnect 参数设置为 true 就行
    zxcf
        18
    zxcf  
    OP
       2019-02-14 09:53:07 +08:00
    @echo404 TP5 确实在 5.0.6 版本已经修复了这个,配置开启就 OK 了,我还以为得自己写重连机制了
    awanganddong
        19
    awanganddong  
       2020-12-04 09:53:02 +08:00
    标记一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1184 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 23:32 PVG 07:32 LAX 16:32 JFK 19:32
    Do have faith in what you're doing.
    /html> ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86