使用swoole的addprocess创建了一个自定义的进程,一切运行也都正常,现在就是想知道在不重启整个服务的情况下,如何单独重启该自定义的进程,做到代码更新了,重启一下该进程服务就好了,类似热更新。因为reload只能重启worker和task进程,如果每次都需要重启整个服务,那实在是太麻烦了,所以麻烦看看这个问题在swoole中能否解决?
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
说下我的方法,Process启动时保存PID到文件并注册信号SIGUSR1,通过发送SIGUSR1信号给该PID来实现Reload。
Swoole\Process::signal(SIGUSR1, function() use ($process) { // ... 一些清理工作 // 然后退出进程,Manger会重新创建该进程 $process->exit(0); });
但这要求自定义进程中执行的代码必须是异步非阻塞的
。
- 1 回答
- 0 关注
- 623 浏览
添加回答
举报
0/150
提交
取消