From 6cdb51dd187b432b6770528fdec2046a5885550b Mon Sep 17 00:00:00 2001 From: xl Date: Thu, 20 Jun 2024 17:30:49 +0800 Subject: [PATCH] eee --- Abstracts/BaseProcess.php | 27 +++++++++++++++++++++++++++ Abstracts/TraitServer.php | 12 ++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/Abstracts/BaseProcess.php b/Abstracts/BaseProcess.php index 0b7439d..99f0525 100644 --- a/Abstracts/BaseProcess.php +++ b/Abstracts/BaseProcess.php @@ -20,15 +20,30 @@ abstract class BaseProcess implements OnProcessInterface private bool $stop = false; + /** + * @var bool + */ protected bool $redirect_stdin_and_stdout = FALSE; + /** + * @var int + */ protected int $pipe_type = SOCK_DGRAM; + /** + * @var bool + */ protected bool $enable_coroutine = false; + /** + * @var bool + */ + protected bool $enable_queue = false; + + /** * @var StdoutLogger */ @@ -43,9 +58,21 @@ abstract class BaseProcess implements OnProcessInterface public \Kiri\Di\Container $container; + /** + * @var string + */ public string $name = ''; + /** + * @return bool + */ + public function isEnableQueue(): bool + { + return $this->enable_queue; + } + + /** * @return string */ diff --git a/Abstracts/TraitServer.php b/Abstracts/TraitServer.php index 3626bad..9a95aa9 100644 --- a/Abstracts/TraitServer.php +++ b/Abstracts/TraitServer.php @@ -45,7 +45,11 @@ trait TraitServer if (isset($this->_process[$name->getName()])) { throw new Exception('Process(' . $name->getName() . ') is exists.'); } - $this->_process[$name->getName()] = $this->genProcess($name); + $process = $this->genProcess($name); + if ($name->isEnableQueue()) { + $process->useQueue(); + } + $this->_process[$name->getName()] = $process; } } @@ -192,10 +196,10 @@ trait TraitServer { return match ($type) { Constant::SERVER_TYPE_BASE, Constant::SERVER_TYPE_TCP, - Constant::SERVER_TYPE_UDP => Server::class, - Constant::SERVER_TYPE_HTTP => HServer::class, + Constant::SERVER_TYPE_UDP => Server::class, + Constant::SERVER_TYPE_HTTP => HServer::class, Constant::SERVER_TYPE_WEBSOCKET => WServer::class, - default => null + default => null }; }