变更
This commit is contained in:
@@ -218,8 +218,7 @@ class AsyncServer implements ServerInterface
|
||||
*/
|
||||
public function start(): void
|
||||
{
|
||||
$processManager = Kiri::getDi()->get(EventDispatch::class);
|
||||
$processManager->dispatch(new OnServerBeforeStart());
|
||||
event(new OnServerBeforeStart());
|
||||
$this->server->start();
|
||||
}
|
||||
|
||||
|
||||
@@ -90,6 +90,7 @@ abstract class BaseProcess implements OnProcessInterface
|
||||
|
||||
/**
|
||||
* @param $data
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
protected function onShutdown($data): void
|
||||
{
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Server\Abstracts;
|
||||
|
||||
use Kiri\Di\Context;
|
||||
|
||||
class DoWhile
|
||||
{
|
||||
|
||||
private bool $isStop = false;
|
||||
|
||||
|
||||
/**
|
||||
* @param array|\Closure $handler
|
||||
* @return void
|
||||
*/
|
||||
public static function waite(array|\Closure $handler): void
|
||||
{
|
||||
if (Context::exists('stop')) {
|
||||
return;
|
||||
}
|
||||
$handler();
|
||||
self::waite($handler);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function stop(): void
|
||||
{
|
||||
Context::set('stop', 1);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -164,8 +164,8 @@ trait TraitServer
|
||||
public function getCoroutineServerClass($type): ?string
|
||||
{
|
||||
return match ($type) {
|
||||
Constant::SERVER_TYPE_BASE, Constant::SERVER_TYPE_TCP, Constant::SERVER_TYPE_UDP => \Swoole\Coroutine\Server::class,
|
||||
Constant::SERVER_TYPE_HTTP, Constant::SERVER_TYPE_WEBSOCKET => \Swoole\Coroutine\Http\Server::class,
|
||||
Constant::SERVER_TYPE_BASE, Constant::SERVER_TYPE_TCP, Constant::SERVER_TYPE_UDP => Coroutine\Server::class,
|
||||
Constant::SERVER_TYPE_HTTP, Constant::SERVER_TYPE_WEBSOCKET => Coroutine\Http\Server::class,
|
||||
default => null
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace Kiri\Server\Broadcast;
|
||||
use Kiri;
|
||||
use Kiri\Server\ServerInterface;
|
||||
use Kiri\Server\Abstracts\ProcessManager;
|
||||
use ReflectionException;
|
||||
|
||||
class Broadcast
|
||||
{
|
||||
@@ -13,6 +14,7 @@ class Broadcast
|
||||
/**
|
||||
* @param $message
|
||||
* @return void
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function broadcast($message): void
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@ class OnPipeMessage extends Server
|
||||
* @param mixed $message
|
||||
* @throws Exception
|
||||
*/
|
||||
public function onPipeMessage(\Swoole\Server $server, int $src_worker_id, mixed $message)
|
||||
public function onPipeMessage(\Swoole\Server $server, int $src_worker_id, mixed $message): void
|
||||
{
|
||||
if (is_string($message)) {
|
||||
$message = unserialize($message);
|
||||
|
||||
+6
-39
@@ -32,12 +32,11 @@ class OnServer extends Server
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function onStart(SServer $server)
|
||||
public function onStart(SServer $server): void
|
||||
{
|
||||
\Kiri::setProcessName(sprintf('start[%d].server', $server->master_pid));
|
||||
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnStart($server));
|
||||
event(new OnStart($server));
|
||||
}
|
||||
|
||||
|
||||
@@ -47,52 +46,20 @@ class OnServer extends Server
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function onBeforeShutdown(SServer $server)
|
||||
public function onBeforeShutdown(SServer $server): void
|
||||
{
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnBeforeShutdown($server));
|
||||
event(new OnBeforeShutdown($server));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param SServer $server
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
* @throws
|
||||
*/
|
||||
public function onShutdown(SServer $server): void
|
||||
{
|
||||
@unlink(storage('.swoole.pid'));
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnShutdown($server));
|
||||
event(new OnShutdown($server));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param SServer $server
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function onBeforeReload(SServer $server)
|
||||
{
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnBeforeReload($server));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param SServer $server
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function onAfterReload(SServer $server)
|
||||
{
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnAfterReload($server));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -24,16 +24,14 @@ class OnServerManager extends Server
|
||||
|
||||
/**
|
||||
* @param \Swoole\Server $server
|
||||
* @throws ConfigException
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface|ReflectionException
|
||||
*/
|
||||
public function onManagerStart(\Swoole\Server $server)
|
||||
public function onManagerStart(\Swoole\Server $server): void
|
||||
{
|
||||
Kiri::setProcessName(sprintf('manger process[%d]', $server->manager_pid));
|
||||
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnManagerStart($server));
|
||||
event(new OnManagerStart($server));
|
||||
}
|
||||
|
||||
|
||||
@@ -45,8 +43,7 @@ class OnServerManager extends Server
|
||||
*/
|
||||
public function onManagerStop(\Swoole\Server $server): void
|
||||
{
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnManagerStop($server));
|
||||
event(new OnManagerStop($server));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -58,10 +58,9 @@ class OnServerWorker extends \Kiri\Server\Abstracts\Server
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface|ReflectionException
|
||||
*/
|
||||
public function onWorkerStop(Server $server, int $workerId)
|
||||
public function onWorkerStop(Server $server, int $workerId): void
|
||||
{
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnWorkerStop($server, $workerId));
|
||||
event(new OnWorkerStop($server, $workerId));
|
||||
}
|
||||
|
||||
|
||||
@@ -71,10 +70,9 @@ class OnServerWorker extends \Kiri\Server\Abstracts\Server
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface|ReflectionException
|
||||
*/
|
||||
public function onWorkerExit(Server $server, int $workerId)
|
||||
public function onWorkerExit(Server $server, int $workerId): void
|
||||
{
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnWorkerExit($server, $workerId));
|
||||
event(new OnWorkerExit($server, $workerId));
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +86,7 @@ class OnServerWorker extends \Kiri\Server\Abstracts\Server
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws Exception
|
||||
*/
|
||||
public function onWorkerError(Server $server, int $worker_id, int $worker_pid, int $exit_code, int $signal)
|
||||
public function onWorkerError(Server $server, int $worker_id, int $worker_pid, int $exit_code, int $signal): void
|
||||
{
|
||||
$dispatch = \Kiri::getDi()->get(EventDispatch::class);
|
||||
$dispatch->dispatch(new OnWorkerError($server, $worker_id, $worker_pid, $exit_code, $signal));
|
||||
@@ -97,7 +95,7 @@ class OnServerWorker extends \Kiri\Server\Abstracts\Server
|
||||
$worker_id, $worker_pid, $signal, $exit_code, swoole_strerror(swoole_last_error(), 9)
|
||||
);
|
||||
|
||||
\Kiri::getLogger()->error($message);
|
||||
error($message);
|
||||
|
||||
$this->system_mail($message);
|
||||
}
|
||||
@@ -107,7 +105,7 @@ class OnServerWorker extends \Kiri\Server\Abstracts\Server
|
||||
* @param $messageContent
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function system_mail($messageContent)
|
||||
protected function system_mail($messageContent): void
|
||||
{
|
||||
try {
|
||||
$email = Config::get('email', ['enable' => false]);
|
||||
|
||||
+1
-6
@@ -6,7 +6,6 @@ namespace Kiri\Server;
|
||||
|
||||
use Exception;
|
||||
use Kiri;
|
||||
use Kiri\Abstracts\Config;
|
||||
use Kiri\Exception\ConfigException;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
@@ -56,17 +55,13 @@ class ServerCommand extends Command
|
||||
*/
|
||||
public function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$value = match ($input->getArgument('action')) {
|
||||
return match ($input->getArgument('action')) {
|
||||
'restart' => $this->restart($input),
|
||||
'stop' => $this->stop(),
|
||||
'start' => $this->start($input),
|
||||
default =>
|
||||
throw new Exception('I don\'t know what I want to do.')
|
||||
};
|
||||
if ($input->getOption('daemon') != 1) {
|
||||
file_put_contents(storage('.swoole.pid'), 0);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ class ServerProviders extends Providers
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function onImport(LocalService $application)
|
||||
public function onImport(LocalService $application): void
|
||||
{
|
||||
$server = $this->container->get(ServerCommand::class);
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Server;
|
||||
|
||||
use Kiri\Server\Abstracts\StatusEnum;
|
||||
|
||||
class WorkerStatus
|
||||
{
|
||||
|
||||
|
||||
public StatusEnum $enum = StatusEnum::START;
|
||||
|
||||
|
||||
/**
|
||||
* @param StatusEnum $enum
|
||||
*/
|
||||
public function setEnum(StatusEnum $enum): void
|
||||
{
|
||||
$this->enum = $enum;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param StatusEnum $enum
|
||||
* @return bool
|
||||
*/
|
||||
public function is(StatusEnum $enum): bool
|
||||
{
|
||||
return $this->enum == $enum;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user