WorkerMan中MySQL查询返回空白(不报错)

小飞人

问题描述

WorkerMan调式模式MySQL查询正常,守护模式(-d启动)时,MySQL查询不到数据,增删改查返回空白(注:MySQL操作使用PDO,数据库操作类为自己封装,Autoloader加载过来)

1039 1 0
1个回答

walkor 打赏
  • 小飞人 2022-12-12

    我去试下,谢谢

  • 小飞人 2022-12-12

    放到onWorkerStart里初始化后可以了,可是我的初始化Redis的时候没有放到onWorkerStart中却可以正常使用

  • walkor 2022-12-12

    扩展实现不一样,比如redis扩展有重连机制,pdo没有。
    守护进程时最开始的启动进程fork子进程后会退出,退出时所有连接资源将会关闭,mysql服务端会检测到连接断开并关闭连接。但是workerman所有子进程由于继承了同一个mysql连接资源,所有子进程的mysql连接也会关闭,pdo mysql没有重连机制,使用已经断开的pdo对象就会出现问题了。但是redis扩展自己带重连功能,所以看着没问题。

  • chaz6chez 2022-12-12

    建议初始化都在onWorkerStart中进行,毕竟每一个拓展的底层实现并不统一,不一定都支持fork后的一些重置初始化操作

  • 小飞人 2022-12-15

    明白了,谢谢大佬们指导问题

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