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',