From 7418264e5ed8f32a9c3b282f4c51b71edf5e8ee2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Wed, 7 Apr 2021 11:26:58 +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/Abstracts/Callback.php | 39 ----------------------------- HttpServer/Events/OnWorkerError.php | 21 ++++++---------- HttpServer/Events/OnWorkerExit.php | 4 +-- HttpServer/Events/OnWorkerStop.php | 10 ++++++-- 4 files changed, 16 insertions(+), 58 deletions(-) diff --git a/HttpServer/Abstracts/Callback.php b/HttpServer/Abstracts/Callback.php index a09bed7c..cf9309c9 100644 --- a/HttpServer/Abstracts/Callback.php +++ b/HttpServer/Abstracts/Callback.php @@ -27,25 +27,6 @@ abstract class Callback extends HttpService { - /** - * @param $server - * @param $worker_id - * @param $message - * @throws Exception - */ - protected function clear(Server $server, $worker_id, $message) - { - try { - /** @var Process $logger */ - $logger = Snowflake::app()->get(LoggerProcess::class); - $logger->write(Json::encode([$this->_MESSAGE[$message] . $worker_id, 'log/app'])); - - $this->eventNotify($message); - } catch (\Throwable $exception) { - $this->addError($exception, 'throwable'); - } - } - const EVENT_ERROR = 'WORKER:ERROR'; const EVENT_STOP = 'WORKER:STOP'; @@ -58,24 +39,6 @@ abstract class Callback extends HttpService self::EVENT_EXIT => 'The server exit. at No.', ]; - /** - * @param $message - * @throws Exception - */ - private function eventNotify($message) - { - switch ($message) { - case self::EVENT_ERROR: - fire(Event::SERVER_WORKER_ERROR); - break; - case self::EVENT_EXIT: - fire(Event::SERVER_WORKER_EXIT); - break; - case self::EVENT_STOP: - fire(Event::SERVER_WORKER_STOP); - break; - } - } /** @@ -132,7 +95,6 @@ abstract class Callback extends HttpService /** * @throws ConfigException - * @throws ComponentException * @throws Exception */ protected function clearMysqlClient() @@ -155,7 +117,6 @@ abstract class Callback extends HttpService /** * @throws ConfigException - * @throws ComponentException * @throws Exception */ protected function clearRedisClient() diff --git a/HttpServer/Events/OnWorkerError.php b/HttpServer/Events/OnWorkerError.php index e0d17dd9..dadf1a2a 100644 --- a/HttpServer/Events/OnWorkerError.php +++ b/HttpServer/Events/OnWorkerError.php @@ -6,11 +6,8 @@ namespace HttpServer\Events; use Exception; use HttpServer\Abstracts\Callback; -use Snowflake\Abstracts\Config; use Snowflake\Event; -use Snowflake\Exception\ConfigException; use Snowflake\Snowflake; -use Swoole\Coroutine; use Swoole\Server; /** @@ -33,18 +30,14 @@ class OnWorkerError extends Callback { $event = Snowflake::app()->getEvent(); $event->trigger(Event::SERVER_WORKER_ERROR); - $event->offName(Event::SERVER_WORKER_ERROR); - $this->clear($server, $worker_id, self::EVENT_ERROR); - if (!Config::has('email')) { - return; - } - $this->system_mail(print_r([ - '$worker_pid' => $worker_pid, - '$worker_id' => $worker_id, - '$exit_code' => $exit_code, - '$signal' => $signal, - ], true)); + $message = sprintf('Worker#%d error stop. signal %d, exit_code %d', + $worker_id, $signal, $exit_code + ); + + write($message, 'worker-exit'); + + \logger()->insert(); } } diff --git a/HttpServer/Events/OnWorkerExit.php b/HttpServer/Events/OnWorkerExit.php index bc3a9ca9..2c9d65c8 100644 --- a/HttpServer/Events/OnWorkerExit.php +++ b/HttpServer/Events/OnWorkerExit.php @@ -8,6 +8,7 @@ use Exception; use HttpServer\Abstracts\Callback; use Snowflake\Event; use Snowflake\Snowflake; +use Swoole\Timer; /** * Class OnWorkerExit @@ -30,9 +31,6 @@ class OnWorkerExit extends Callback $event = Snowflake::app()->getEvent(); $event->trigger(Event::SERVER_WORKER_EXIT); - $event->offName(Event::SERVER_WORKER_EXIT); - - $this->clear($server, $worker_id, self::EVENT_EXIT); \logger()->insert(); } diff --git a/HttpServer/Events/OnWorkerStop.php b/HttpServer/Events/OnWorkerStop.php index 77b1f568..482d8bee 100644 --- a/HttpServer/Events/OnWorkerStop.php +++ b/HttpServer/Events/OnWorkerStop.php @@ -6,8 +6,10 @@ namespace HttpServer\Events; use Exception; use HttpServer\Abstracts\Callback; +use Snowflake\Error\Logger; use Snowflake\Event; use Snowflake\Snowflake; +use Swoole\Timer; /** * Class OnWorkerStop @@ -26,9 +28,13 @@ class OnWorkerStop extends Callback { $event = Snowflake::app()->getEvent(); $event->trigger(Event::SERVER_WORKER_STOP); - $event->offName(Event::SERVER_WORKER_STOP); - $this->clear($server, $worker_id, self::EVENT_STOP); + $this->clearMysqlClient(); + $this->clearRedisClient(); + + Timer::clearAll(); + + \logger()->insert(); } }