Swoole reload_async机制

Swoole的异步Server里面,有一个叫做reload_async的配置:

1
2
3
4
$serv->set([
'max_wait_time' => 60,
'reload_async' => true,
]);

这个配置是用来异步安全重启服务的。

比如,我们要重启worker进程,但是worker进程正在处理着一些事件,那么,我们就不能够让旧的worker进程挂掉,我们需要让旧的worker进程处理那些事件,然后再让旧的worker进程退出。但是,我们不能一直去等待旧的worker进程去处理事件,所以,我们可以在创建新的worker进程的之后,保留旧的worker进程一段时间,让旧的worker进程去处理那些事件,直到超过了max_wait_time设置的时间之后,让旧的worker进程退出。