swoole2.0使用swoole_process做多进程出现问题
swoole版本:2.0
使用swoole_process来创建子进程
多进程模型是一个主进程监听四个子进程
主进程使用swoole_timer_tick()来执行定时任务
每200毫秒用swoole_process::wait(false)来检查是否有子进程退出
如果code不为0,则为异常退出,会重启一个子进程
在子进程中用register_shutdown_function来捕捉致命错误,记录一个错误日志
问题是
当进程第一次启动后,子进程出现致命错误,触发了register_shutdown_function中注册的函数来处理
当子进程退出,主进程wait回收后,又启动了一个子进程
再次启动的子进程,再次出现致命错误的时候,没有触发register_shutdow_function中注册的函数(确定执行了注册代码)
使用swoole_errno()在主进程来获取错误码,第一次错误码为2(正常的)
子进程重启后,触发的错误码为115
项目为一个多进程的异步任务管理器,集成lumen5.3开发
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以使用上面监听SIGCHLD信号这种方式去回收子进程,