消息有时候发不出去 Warning: Error while sending STMT_PREPARE packet. PID=373184

刘work

截图

3192 3 0
3个回答

walkor

应该是msyql 连接长时间空闲断开了。
你加个定时器,定时 'select 1',这样定时和mysql通讯,保持连接不被关闭。定时间隔50秒差不多。

  • 刘work 2020-03-05

    感谢回答,能详细讲讲具体代码是怎么样的,要在哪里写,我是小白,求详解

walkor

写在onWorkerStart里。

\Workerman\Lib\Timer::add(50, function(){
    Db::query('select 1');
});

伪代码大概这样

  • 刘work 2020-03-05

    感谢,决解了

  • 刘work 2020-03-06

    还有点问题 Warning: system call select exceeded the maximum number of connections 256.

刘work

又出现了这种问题,连接数达到最大值Warning: system call select exceeded the maximum number of connections 256.
截图

  • six 2020-03-06

    手册说windows下workerman做多支持256个连接,装event扩展吧,或者换linux系统

  • 刘work 2020-03-06

    @1393:感谢回答,windows 下怎么安装event扩展,感觉很难,linux 系统不好更换

年代过于久远,无法发表回答
🔝