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 $maxRestartCount protected $maxWaitTime protected $onWorkerStart protected $reloadCoroutine 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 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 退出时自动处理重启逻辑。 主协程使用 waitAll 等待所有协程退出,信号协程在 stop 时被主动 kill。

Method reload

public function reload ( ) : void

优雅重载:逐个重启 Worker,零停机

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 ) : void

为 Worker 启动一个监控协程 Worker 退出时根据策略自动重启


Copyright 2022 the Swow contributors