diff --git a/HttpServer/Events/OnWorkerStart.php b/HttpServer/Events/OnWorkerStart.php index 4437e099..6da3f76a 100644 --- a/HttpServer/Events/OnWorkerStart.php +++ b/HttpServer/Events/OnWorkerStart.php @@ -23,67 +23,69 @@ use Swoole\Server; class OnWorkerStart extends Callback { - /** @var int 重启信号 */ - private int $signal = SIGUSR1 | SIGUSR2 | SIGTERM; + /** @var int 重启信号 */ + private int $signal = SIGUSR1 | SIGUSR2 | SIGTERM; - /** - * @param Server $server - * @param int $worker_id - * - * @return mixed - * @throws ConfigException - * @throws Exception - */ - public function onHandler(Server $server, int $worker_id): void - { - Coroutine::set(['enable_deadlock_check' => false]); + /** + * @param Server $server + * @param int $worker_id + * + * @return mixed + * @throws ConfigException + * @throws Exception + */ + public function onHandler(Server $server, int $worker_id): void + { + Coroutine::set(['enable_deadlock_check' => false]); - $this->debug(sprintf('System#%d start.', $worker_id)); - if ($worker_id >= $server->setting['worker_num']) { - $this->onTask($server, $worker_id); - } else { - $this->onWorker($server, $worker_id); - } - Coroutine\go([$this, 'onSignal'], $server, $worker_id); - } + putenv('worker=' . $worker_id); + + $this->debug(sprintf('System#%d start.', $worker_id)); + if ($worker_id >= $server->setting['worker_num']) { + $this->onTask($server, $worker_id); + } else { + $this->onWorker($server, $worker_id); + } + Coroutine\go([$this, 'onSignal'], $server, $worker_id); + } - /** - * @param Server $server - * @param int $worker_id - * @throws ComponentException|ConfigException - * OnTask Worker - */ - public function onTask(Server $server, int $worker_id) - { - putenv('environmental=' . Snowflake::TASK); + /** + * @param Server $server + * @param int $worker_id + * @throws ComponentException|ConfigException + * OnTask Worker + */ + public function onTask(Server $server, int $worker_id) + { + putenv('environmental=' . Snowflake::TASK); - fire(Event::SERVER_TASK_START); + fire(Event::SERVER_TASK_START); - $this->set_process_name($server, $worker_id); - } + $this->set_process_name($server, $worker_id); + } - /** - * @param Server $server - * @param int $worker_id - * @throws Exception - * onWorker - */ - public function onWorker(Server $server, int $worker_id) - { - Snowflake::setWorkerId($server->worker_pid); + /** + * @param Server $server + * @param int $worker_id + * @throws Exception + * onWorker + */ + public function onWorker(Server $server, int $worker_id) + { + Snowflake::setWorkerId($server->worker_pid); - putenv('environmental=' . Snowflake::WORKER); - try { - fire(Event::SERVER_WORKER_START, [$worker_id]); - } catch (\Throwable $exception) { - $this->addError($exception); - write($exception->getMessage(), 'worker'); - } - $this->set_process_name($server, $worker_id); - } + putenv('environmental=' . Snowflake::WORKER); + try { + fire(Event::SERVER_WORKER_START, [$worker_id]); + } catch (\Throwable $exception) { + $this->addError($exception); + write($exception->getMessage(), 'worker'); + } + $this->set_process_name($server, $worker_id); + } /** @@ -91,35 +93,38 @@ class OnWorkerStart extends Callback * @param $worker_id * @return mixed */ - public function onSignal($server, $worker_id): mixed - { - $receive = Coroutine::waitSignal($this->signal, -1); - while ($receive === true) { - if (!Snowflake::app()->isRun()) { - break; - } - sleep(1); - } - return $server->stop($worker_id); - } + public function onSignal($server, $worker_id): mixed + { + $receive = Coroutine::waitSignal($this->signal, -1); + while ($receive === true) { + + var_dump(env('worker') . '::' . (string)Snowflake::app()->isRun()); + + if (!Snowflake::app()->isRun()) { + break; + } + sleep(1); + } + return $server->stop($worker_id); + } - /** - * @param $socket - * @param $worker_id - * @return string - * @throws ConfigException - */ - private function set_process_name($socket, $worker_id): mixed - { - $prefix = Config::get('id', false, 'system'); - if ($worker_id >= $socket->setting['worker_num']) { - $name = $prefix . ' Task: No.' . $worker_id; - } else { - $name = $prefix . ' worker: No.' . $worker_id; - } - return swoole_set_process_name($name); - } + /** + * @param $socket + * @param $worker_id + * @return string + * @throws ConfigException + */ + private function set_process_name($socket, $worker_id): mixed + { + $prefix = Config::get('id', false, 'system'); + if ($worker_id >= $socket->setting['worker_num']) { + $name = $prefix . ' Task: No.' . $worker_id; + } else { + $name = $prefix . ' worker: No.' . $worker_id; + } + return swoole_set_process_name($name); + } }