使用示例:
$atomic = new Swoole\Atomic();
$serv = new Swoole\Server('127.0.0.1', '9501');
$serv->set([
'worker_num' => 1,
'log_file' => '/dev/null'
]);
// 主行程啟動時觸發,與管理行程并行啟動
$serv->on("start", function ($serv) use ($atomic) {
if ($atomic->add() == 2) {
$serv->shutdown();
}
});
// 管理行程啟動時觸發,與主行程并行啟動
$serv->on("ManagerStart", function ($serv) use ($atomic) {
if ($atomic->add() == 2) {
$serv->shutdown();
}
});
// 管理行程結束時觸發,這時 Task 和 Worker 行程已結束運行,已被 Manager 行程回收
$serv->on("ManagerStop", function ($serv) {
echo "shutdown\n";
});
$serv->on("Receive", function () {
});
$serv->start();
服務器啟動成功后,
onStart/onManagerStart/onWorkerStart會在不同的行程內并發執行,
onStart/onManagerStart/onWorkerStart3 個事件的執行順序是不確定的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/5063.html
標籤:PHP
