为了账号安全,请及时绑定邮箱和手机立即绑定

在swoole的Web Server中添加了自定义进程,如何可以优雅的重启该自定义进程

在swoole的Web Server中添加了自定义进程,如何可以优雅的重启该自定义进程

PHP
慕姐8265434 2019-03-01 09:07:44
使用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);
});

但这要求自定义进程中执行的代码必须是异步非阻塞的


查看完整回答
反对 回复 2019-03-28
  • 1 回答
  • 0 关注
  • 623 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信