From 14cb8a45d33597fa2f1499818172b6cbf8f7be87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Thu, 12 Aug 2021 14:08:40 +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 --- Server/Abstracts/Server.php | 19 ++++++++++++++++++- Server/Events/OnAfterReload.php | 18 ++++++++++++++++++ Server/Events/OnBeforeReload.php | 18 ++++++++++++++++++ Server/Events/OnManagerStart.php | 16 ++++++++++++++++ Server/Events/OnManagerStop.php | 18 ++++++++++++++++++ Server/Events/OnShutdown.php | 18 ++++++++++++++++++ Server/Events/OnStart.php | 18 ++++++++++++++++++ Server/Manager/OnPipeMessage.php | 2 -- Server/Manager/OnServerDefault.php | 20 +++++++++++++++----- Server/Manager/OnServerManager.php | 17 +++++++++++++---- Server/Task/OnServerTask.php | 1 - Server/Worker/OnServerWorker.php | 8 -------- 12 files changed, 152 insertions(+), 21 deletions(-) create mode 100644 Server/Events/OnAfterReload.php create mode 100644 Server/Events/OnBeforeReload.php create mode 100644 Server/Events/OnManagerStart.php create mode 100644 Server/Events/OnManagerStop.php create mode 100644 Server/Events/OnShutdown.php create mode 100644 Server/Events/OnStart.php diff --git a/Server/Abstracts/Server.php b/Server/Abstracts/Server.php index e737ee3a..dc3b6c20 100644 --- a/Server/Abstracts/Server.php +++ b/Server/Abstracts/Server.php @@ -21,11 +21,28 @@ abstract class Server { + /** + * @param $prefix + * @throws ConfigException + */ + protected function setProcessName($prefix) + { + if (Kiri::getPlatform()->isMac()) { + return; + } + $name = Config::get('id', 'system-service'); + if (!empty($prefix)) { + $name .= '.' . $prefix; + } + swoole_set_process_name($name); + } + + /** * Server constructor. * @throws Exception */ - public function __construct(protected \Swoole\Server|Port $server) + public function __construct() { } diff --git a/Server/Events/OnAfterReload.php b/Server/Events/OnAfterReload.php new file mode 100644 index 00000000..26d82d7e --- /dev/null +++ b/Server/Events/OnAfterReload.php @@ -0,0 +1,18 @@ +setProcessName(sprintf('start[%d].server', $server->master_pid)); - $this->runEvent(Constant::START, null, [$server]); + $this->eventDispatch->dispatch(new OnStart($server)); } @@ -38,7 +48,7 @@ class OnServerDefault extends Server */ public function onShutdown(\Swoole\Server $server) { - $this->runEvent(Constant::SHUTDOWN, null, [$server]); + $this->eventDispatch->dispatch(new OnShutdown($server)); } @@ -48,7 +58,7 @@ class OnServerDefault extends Server */ public function onBeforeReload(\Swoole\Server $server) { - $this->runEvent(Constant::BEFORE_RELOAD, null, [$server]); + $this->eventDispatch->dispatch(new OnBeforeReload($server)); } @@ -57,7 +67,7 @@ class OnServerDefault extends Server */ public function onAfterReload(\Swoole\Server $server) { - $this->runEvent(Constant::AFTER_RELOAD, null, [$server]); + $this->eventDispatch->dispatch(new OnAfterReload($server)); } } diff --git a/Server/Manager/OnServerManager.php b/Server/Manager/OnServerManager.php index dec337f9..8cc714a7 100644 --- a/Server/Manager/OnServerManager.php +++ b/Server/Manager/OnServerManager.php @@ -2,9 +2,12 @@ namespace Server\Manager; +use Annotation\Inject; +use Kiri\Events\EventDispatch; use Server\Abstracts\Server; -use Server\Constant; use Kiri\Exception\ConfigException; +use Server\Events\OnManagerStart; +use Server\Events\OnManagerStop; /** @@ -14,8 +17,14 @@ use Kiri\Exception\ConfigException; class OnServerManager extends Server { + /** + * @var EventDispatch + */ + #[Inject(EventDispatch::class)] + public EventDispatch $eventDispatch; - /** + + /** * @param \Swoole\Server $server * @throws ConfigException */ @@ -23,7 +32,7 @@ class OnServerManager extends Server { $this->setProcessName(sprintf('manger[%d].0', $server->manager_pid)); - $this->runEvent(Constant::MANAGER_START, null, [$server]); + $this->eventDispatch->dispatch(new OnManagerStart($server)); } @@ -32,7 +41,7 @@ class OnServerManager extends Server */ public function onManagerStop(\Swoole\Server $server) { - $this->runEvent(Constant::MANAGER_STOP, null, [$server]); + $this->eventDispatch->dispatch(new OnManagerStop($server)); } diff --git a/Server/Task/OnServerTask.php b/Server/Task/OnServerTask.php index 569acb13..a9e36fcb 100644 --- a/Server/Task/OnServerTask.php +++ b/Server/Task/OnServerTask.php @@ -57,7 +57,6 @@ class OnServerTask * @param $data * @return null * @throws ReflectionException - * @throws NotFindClassException */ private function resolve($data) { diff --git a/Server/Worker/OnServerWorker.php b/Server/Worker/OnServerWorker.php index 6347c704..7f067e10 100644 --- a/Server/Worker/OnServerWorker.php +++ b/Server/Worker/OnServerWorker.php @@ -53,8 +53,6 @@ class OnServerWorker extends \Server\Abstracts\Server $this->eventDispatch->dispatch(new OnWorkerStart($server, $workerId)); - $this->runEvent(Constant::WORKER_START, null, [$server, $workerId]); - $this->workerInitExecutor($server, $annotation, $workerId); $this->interpretDirectory($annotation); @@ -141,8 +139,6 @@ class OnServerWorker extends \Server\Abstracts\Server */ public function onWorkerStop(Server $server, int $workerId) { - $this->runEvent(Constant::WORKER_STOP, null, [$server, $workerId]); - $this->eventDispatch->dispatch(new OnWorkerStop($server, $workerId)); Timer::clearAll(); @@ -156,8 +152,6 @@ class OnServerWorker extends \Server\Abstracts\Server */ public function onWorkerExit(Server $server, int $workerId) { - $this->runEvent(Constant::WORKER_EXIT, null, [$server, $workerId]); - putenv('state=exit'); $this->eventDispatch->dispatch(new OnWorkerExit($server, $workerId)); @@ -176,8 +170,6 @@ class OnServerWorker extends \Server\Abstracts\Server */ public function onWorkerError(Server $server, int $worker_id, int $worker_pid, int $exit_code, int $signal) { - $this->runEvent(Constant::WORKER_ERROR, null, [$server, $worker_id, $worker_pid, $exit_code, $signal]); - $this->eventDispatch->dispatch(new OnWorkerError($server, $worker_id, $worker_pid, $exit_code, $signal)); $message = sprintf('Worker#%d::%d error stop. signal %d, exit_code %d, msg %s',