reloadable

說明:

bool Worker::$reloadable

執行php start.php reload時會向所有子進程發送 reload 信號 (SIGUSR1)。

子進程收到 reload 信號後會自動退出然後主進程會自動拉起一個新的進程,一般用於更新業務代碼。

當進程 $reloadable 為 false 時,收到 reload 信號後只會觸發 onWorkerReload,並不會重啟當前進程。

例如 Gateway/Worker 模型中的 gateway 進程負責維持客戶端連接工作,worker 進程負責處理請求。
設定 gateway 進程的 reloadable 屬性為 false 則在 reload 可以做到在不斷開客戶端連接的情況下更新業務代碼。

範例

use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('websocket://0.0.0.0:8484');
// 設定此實例收到 reload 信號後是否重啟
$worker->reloadable = false;
$worker->onWorkerStart = function($worker)
{
    echo "Worker starting...\n";
};
// 運行 worker
Worker::runAll();