diff --git a/HttpServer/Events/OnTask.php b/HttpServer/Events/OnTask.php index 8156558d..4c30bcd9 100644 --- a/HttpServer/Events/OnTask.php +++ b/HttpServer/Events/OnTask.php @@ -97,7 +97,6 @@ class OnTask extends Callback */ private function runTaskHandler($data): ?array { - $app = Snowflake::app()->increment(); try { $serialize = $this->before($data); $params = $serialize->getParams(); @@ -116,7 +115,6 @@ class OnTask extends Callback $event = Snowflake::app()->getEvent(); $event->trigger(Event::SYSTEM_RESOURCE_CLEAN); - $app->decrement(); Timer::clearAll(); diff --git a/HttpServer/Events/OnWorkerStart.php b/HttpServer/Events/OnWorkerStart.php index d7754ee7..2e54bfe9 100644 --- a/HttpServer/Events/OnWorkerStart.php +++ b/HttpServer/Events/OnWorkerStart.php @@ -36,21 +36,26 @@ class OnWorkerStart extends Callback */ public function onHandler(Server $server, int $worker_id): void { - Coroutine::set(['enable_deadlock_check' => false]); + Coroutine::set([ + 'enable_deadlock_check' => false, + 'exit_condition' => function () { + return Coroutine::stats()['coroutine_num'] === 0; + } + ]); $get_name = $this->get_process_name($server, $worker_id); if (!empty($get_name) && !Snowflake::isMac()) { swoole_set_process_name($get_name); } - Coroutine\go(function ($server, $worker_id) { - $sigkill = Coroutine::waitSignal(SIGTERM | SIGKILL | SIGUSR2 | SIGUSR1); - if ($sigkill !== false) { - return $server->stop(); - } - while (Snowflake::app()->isRun()) { - Coroutine::sleep(0.01); - } - return $server->stop(); - }, $server, $worker_id); +// Coroutine\go(function ($server, $worker_id) { +// $sigkill = Coroutine::waitSignal(SIGTERM | SIGKILL | SIGUSR2 | SIGUSR1); +// if ($sigkill !== false) { +// return $server->stop(); +// } +// while (Snowflake::app()->isRun()) { +// Coroutine::sleep(0.01); +// } +// return $server->stop(); +// }, $server, $worker_id); $name = ($worker_id >= $server->setting['worker_num'] ? 'Task' : 'Worker'); $this->debug(sprintf($name . ' #%d is start.....', $worker_id)); @@ -64,8 +69,6 @@ class OnWorkerStart extends Callback } - - /** * @param $worker_id * @throws Exception