This is automatic generated document for things in Swow\Process\ProcessManager class
Class ProcessManager
多进程管理器
将当前进程变为 Manager 角色,fork 出 N 个 Worker 进程。 管理 Worker 生命周期:异常退出自动重启、SIGUSR1 优雅重载、SIGTERM 优雅关闭。
Properties
protected $intCoroutine protected $managedCoroutineCount protected $managingCoroutines protected $maxRestartCount protected $maxWaitTime protected $onWorkerExit protected $onWorkerStart protected $reloadCoroutine protected $reloadTaskCoroutine protected $reloading protected $restartCounts protected $running protected $termCoroutine protected $watcherCoroutines protected $workerCount protected $workers Methods
Method __construct
public function __construct ( int $workerCount ) Param int $workerCount Worker 数量,0 = CPU 核数
Method enforceWorkerShutdownTimeout
protected function enforceWorkerShutdownTimeout ( ) : void Method forkWorker
protected function forkWorker ( int $id ) : void Fork 一个 Worker 进程
Method getWorkerCount
public function getWorkerCount ( ) : int Method handleSignals
protected function handleSignals ( ) : void Manager 主循环:处理信号 + 回收 Worker
为每个 Worker 启动一个等待协程,Worker 退出时自动处理重启逻辑。 主协程只等待 ProcessManager 自己创建的协程退出,stop 后信号协程会通过短超时自行结束。
Method onWorkerExit
public function onWorkerExit ( Closure(int $workerId, int $workerPid, ProcessExitStatus $status): void $callback ) : static 设置 Worker 退出回调。
回调运行在 Manager 进程中,用于上层获取 worker id、pid 和退出状态。
Method reload
public function reload ( ) : void 优雅重载:逐个重启 Worker,零停机
Method runManagedCoroutine
protected function runManagedCoroutine ( Closure $callback ) : Coroutine Method setMaxRestartCount
public function setMaxRestartCount ( int $count ) : static 单个 Worker 最大异常重启次数,超过后不再自动拉起
Method setMaxWaitTime
public function setMaxWaitTime ( int $seconds ) : static Worker 优雅退出最大等待时间(秒),超时后 SIGKILL
Method start
public function start ( Closure(WorkerContext): void $onWorkerStart ) : void 启动多进程管理器
当前进程变为 Manager,阻塞直到所有 Worker 退出。
Param Closure(WorkerContext): void $onWorkerStart 每个 Worker 的启动逻辑
Method stop
public function stop ( ) : void 优雅关闭所有 Worker
Method watchWorker
protected function watchWorker ( int $id , ?ForkProcess $process ) : void 为 Worker 启动一个监控协程 Worker 退出时根据策略自动重启