From 053ae40916b86d02900b6ba88ea88d32ff717978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Fri, 26 Feb 2021 19:58:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HttpServer/Events/OnWorkerStart.php | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/HttpServer/Events/OnWorkerStart.php b/HttpServer/Events/OnWorkerStart.php index c8bdaaf1..f726d0bf 100644 --- a/HttpServer/Events/OnWorkerStart.php +++ b/HttpServer/Events/OnWorkerStart.php @@ -41,8 +41,6 @@ class OnWorkerStart extends Callback if (!empty($get_name) && !Snowflake::isMac()) { swoole_set_process_name($get_name); } - $this->onTaskSignal($server, $worker_id); - putenv('workerId=' . ($worker_id >= $server->setting['worker_num'] ? 'Task' : 'Worker') . '.' . $worker_id); if ($worker_id >= $server->setting['worker_num']) { fire(Event::SERVER_TASK_START); @@ -50,6 +48,7 @@ class OnWorkerStart extends Callback Snowflake::setWorkerId($server->worker_pid); $this->setWorkerAction($worker_id); } + $this->onTaskSignal($server, $worker_id); } @@ -57,20 +56,18 @@ class OnWorkerStart extends Callback * @param Server $server * @param int $workerId * 异步任务管制 + * @return mixed */ - public function onTaskSignal(Server $server, int $workerId) + public function onTaskSignal(Server $server, int $workerId): mixed { - go(function () use ($server, $workerId) { - $sigkill = Coroutine::waitSignal(SIGTERM | SIGKILL | SIGUSR2 | SIGUSR1, -1); - if ($sigkill === false) { - return $server->stop($workerId); - } - var_dump(Snowflake::app()->isRun()); - while (Snowflake::app()->isRun()) { - Coroutine::sleep(0.01); - } + $sigkill = Coroutine::waitSignal(SIGTERM | SIGKILL | SIGUSR2 | SIGUSR1, -1); + if ($sigkill === false) { return $server->stop($workerId); - }); + } + while ($server->stats()['coroutine_num'] > 0) { + Coroutine::sleep(0.01); + } + return $server->stop($workerId); }