Compare commits

...

5 Commits

Author SHA1 Message Date
as2252258 bffe375230 1 2021-12-17 04:20:20 +08:00
as2252258 efb69d02f3 改名 2021-12-08 11:46:08 +08:00
as2252258 79e5fa0b08 改名 2021-12-08 11:45:19 +08:00
as2252258 de7e005b46 改名 2021-12-08 11:32:31 +08:00
as2252258 a64fa8f493 改名 2021-12-08 11:16:35 +08:00
3 changed files with 33 additions and 28 deletions
+5 -5
View File
@@ -17,7 +17,7 @@ abstract class BaseProcess implements OnProcessInterface
protected bool $isStop = false;
protected mixed $redirect_stdin_and_stdout = null;
protected bool $redirect_stdin_and_stdout = FALSE;
protected int $pipe_type = SOCK_DGRAM;
@@ -47,10 +47,10 @@ abstract class BaseProcess implements OnProcessInterface
}
/**
* @return mixed
*/
public function getRedirectStdinAndStdout(): mixed
{
* @return bool
*/
public function getRedirectStdinAndStdout(): bool
{
return $this->redirect_stdin_and_stdout;
}
+22 -22
View File
@@ -5,10 +5,10 @@ namespace Server;
use Exception;
use Http\Handler\Abstracts\HttpService;
use JetBrains\PhpStorm\Pure;
use Kiri\Abstracts\Config;
use Kiri\Events\EventDispatch;
use Kiri\Exception\ConfigException;
use Kiri\Kiri;
use Note\Inject;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
@@ -28,21 +28,9 @@ class Server extends HttpService
];
/**
* @Inject ServerManager
* @var null|ServerManager
*/
#[Inject(ServerManager::class)]
public ?ServerManager $manager = null;
private mixed $daemon = 0;
/** @var EventDispatch */
#[Inject(EventDispatch::class)]
public EventDispatch $eventDispatch;
/**
* @var State
*/
@@ -77,36 +65,38 @@ class Server extends HttpService
*/
public function start(): string
{
$this->manager->initBaseServer(Config::get('server', [], true), $this->daemon);
$this->manager()->initBaseServer(Config::get('server', [], true), $this->daemon);
$rpcService = Config::get('rpc', []);
if (!empty($rpcService)) {
$this->manager->addListener($rpcService['type'], $rpcService['host'], $rpcService['port'],
$this->manager()->addListener($rpcService['type'], $rpcService['host'], $rpcService['port'],
$rpcService['mode'], $rpcService);
}
$processes = array_merge($this->process, Config::get('processes', []));
foreach ($processes as $process) {
$this->manager->addProcess($process);
$this->manager()->addProcess($process);
}
return $this->manager->getServer()->start();
return $this->manager()->getServer()->start();
}
/**
* @return void
*
* start server
* @throws ConfigException
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
* @throws \ReflectionException
* @throws Exception
*/
public function shutdown()
{
$configs = Config::get('server', [], true);
foreach ($this->manager->sortService($configs['ports'] ?? []) as $config) {
foreach ($this->manager()->sortService($configs['ports'] ?? []) as $config) {
$this->state->exit($config['port']);
}
$this->eventDispatch->dispatch(new OnShutdown());
$this->container->get(EventDispatch::class)->dispatch(new OnShutdown());
}
@@ -141,7 +131,17 @@ class Server extends HttpService
*/
public function getServer(): \Swoole\Http\Server|\Swoole\Server|\Swoole\WebSocket\Server|null
{
return $this->manager->getServer();
return $this->manager()->getServer();
}
/**
* @return ServerManager
* @throws \ReflectionException
*/
private function manager(): ServerManager
{
return Kiri::getDi()->get(ServerManager::class);
}
}
+6 -1
View File
@@ -5,6 +5,7 @@ namespace Server;
use Exception;
use Kiri\Abstracts\Component;
use Kiri\Abstracts\Config;
use Kiri\Di\NoteManager;
use Kiri\Error\Logger;
use Kiri\Events\EventDispatch;
use Kiri\Exception\ConfigException;
@@ -291,7 +292,7 @@ class ServerManager extends Component
$id = Config::get('id', 'system-service');
$this->logger->debug(sprintf('[%s]' . $type . ' service %s::%d start', $id, $host, $port));
$this->logger->debug(sprintf('[%s].' . $type . ' service %s::%d start', $id, $host, $port));
$this->addDefaultListener($settings);
}
@@ -356,8 +357,10 @@ class ServerManager extends Component
/**
* @param array $events
* @return void
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
* @throws ReflectionException
*/
private function addTaskListener(array $events = []): void
{
@@ -374,8 +377,10 @@ class ServerManager extends Component
/**
* @param array|null $settings
* @return void
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
* @throws ReflectionException
*/
public function bindCallback(?array $settings = [])
{