From 56d4d5dcb72fd6fe29fd54b82efe0df691d77e60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Tue, 2 Mar 2021 12:03:43 +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 | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/HttpServer/Events/OnWorkerStart.php b/HttpServer/Events/OnWorkerStart.php index e71f74eb..f56b978b 100644 --- a/HttpServer/Events/OnWorkerStart.php +++ b/HttpServer/Events/OnWorkerStart.php @@ -12,6 +12,7 @@ use Snowflake\Exception\ComponentException; use Snowflake\Exception\ConfigException; use Snowflake\Snowflake; use Swoole\Coroutine; +use Swoole\Runtime; use Swoole\Server; use co; use Swoole\Timer; @@ -89,28 +90,30 @@ class OnWorkerStart extends Callback * @param $worker_id * @return void */ - public function onSignal(Server $server, $worker_id): void + public function onSignal(Server $server, $worker_id): mixed { $ret = Coroutine::waitSignal($this->signal, -1); + + Runtime::enableCoroutine(false); if ($ret === true) { - $this->ticker($server); - } else { - $server->stop(); + $this->ticker(); } + return $server->stop(); } /** - * @param Server $server * @return void */ - private function ticker(Server $server): void + private function ticker(): void { if (!Snowflake::app()->isRun()) { - $server->stop(); return; } - Timer::after(1000, [$this, 'ticker'], $server); + + sleep(1); + + $this->ticker(); }