diff --git a/ProcessManager.php b/ProcessManager.php index a860f36..a0264ff 100644 --- a/ProcessManager.php +++ b/ProcessManager.php @@ -42,8 +42,14 @@ class ProcessManager $system = sprintf('[%s].process', Config::get('id', 'system-service')); $this->logger->debug($system . ' ' . $customProcess->getName() . ' start.'); - - $server->addProcess($process = $this->parse($customProcess, $system)); + $process = $this->parse($customProcess, $system); + if (Context::inCoroutine()) { + Coroutine::create(function () use ($process) { + $process->start(); + }); + } else { + $server->addProcess($process = $this->parse($customProcess, $system)); + } $this->_process[$customProcess->getName()] = $process; } diff --git a/ServerManager.php b/ServerManager.php index 9a4c354..e6c6388 100644 --- a/ServerManager.php +++ b/ServerManager.php @@ -61,9 +61,6 @@ class ServerManager extends Component private Server|null $server = null; - protected array $initProcesses = []; - - const DEFAULT_EVENT = [ Constant::WORKER_START => [OnServerWorker::class, 'onWorkerStart'], Constant::WORKER_EXIT => [OnServerWorker::class, 'onWorkerExit'], @@ -160,15 +157,6 @@ class ServerManager extends Component } - /** - * @return array - */ - public function getProcesses(): array - { - return $this->initProcesses; - } - - /** * @return array */