workerman版本:3.5.18
发起 reload 指令
前置条件
static::$_gracefulStop = true;
$worker->reloadable = true;
$worker->count = 4;
[attach]1698[/attach]
[attach]1699[/attach]
按照这个逻辑一次只能 reload 一个子进程,其他3个子进程根本reload不了
是否需要手动执行多次reload 才能reload其余的子进程呢,有点不解, THX
https://github.com/walkor/Workerman/blob/9f36bb4cb718c6fd5b03771bd5f266cd371bb23e/Worker.php#L1592-L1600
parseCommand 方法里面有 reload指令的解析,还有 -g 参数 ,这个是可以手动的,如果是
手动,按照代码逻辑一次只能 reload 一个子进程
$one_worker_pid = current(static::$_pidsToRestart);
// Send reload signal to a worker process.
posix_kill($one_worker_pid, $sig);
在主进程 reload 方法里只向一个子进程发送了 reload 信号,手动操作带 -g 参数进行 reload
这个是不能实现对所有子进程进行 reload吧,不知道理解对不对, THX
谢谢兄台的细心解答,我再分析一下全局代码,可能是某个点被我忽略了,造成理解上的疑惑
@5401:
好的,我再折腾一下,把所有不解的梳理出来,让兄台指点一下