2022-01-09 03:49:02 +08:00
|
|
|
<?php
|
|
|
|
|
|
2022-01-10 11:39:55 +08:00
|
|
|
namespace Kiri\Server\Handler;
|
2022-01-09 03:49:02 +08:00
|
|
|
|
2023-12-12 10:56:42 +08:00
|
|
|
use Kiri;
|
2023-04-16 02:41:03 +08:00
|
|
|
use Kiri\Di\Inject\Container;
|
2023-08-14 22:14:35 +08:00
|
|
|
use Kiri\Error\StdoutLogger;
|
2023-08-14 21:09:44 +08:00
|
|
|
use Psr\Log\LoggerInterface;
|
2022-01-10 11:39:55 +08:00
|
|
|
use Kiri\Server\Abstracts\Server;
|
|
|
|
|
use Kiri\Server\Events\OnBeforeShutdown;
|
|
|
|
|
use Kiri\Server\Events\OnShutdown;
|
|
|
|
|
use Kiri\Server\Events\OnStart;
|
2022-06-16 17:38:22 +08:00
|
|
|
use Swoole\Server as SServer;
|
2022-01-09 03:49:02 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Class OnServerDefault
|
|
|
|
|
* @package Server\Manager
|
|
|
|
|
*/
|
|
|
|
|
class OnServer extends Server
|
|
|
|
|
{
|
2022-06-16 17:38:22 +08:00
|
|
|
|
2022-01-09 03:49:02 +08:00
|
|
|
|
2023-08-14 21:09:44 +08:00
|
|
|
/**
|
2023-08-14 22:14:35 +08:00
|
|
|
* @var StdoutLogger
|
2023-08-14 21:09:44 +08:00
|
|
|
*/
|
|
|
|
|
#[Container(LoggerInterface::class)]
|
2023-08-14 22:14:35 +08:00
|
|
|
public StdoutLogger $logger;
|
2023-08-14 21:09:44 +08:00
|
|
|
|
|
|
|
|
|
2023-08-11 02:35:46 +08:00
|
|
|
/**
|
|
|
|
|
* @param SServer $server
|
2023-12-12 15:35:34 +08:00
|
|
|
* @throws
|
2023-08-11 02:35:46 +08:00
|
|
|
*/
|
|
|
|
|
public function onStart(SServer $server): void
|
|
|
|
|
{
|
2024-09-04 11:52:08 +08:00
|
|
|
Kiri::setProcessName(sprintf('Master[%d]', $server->master_pid));
|
|
|
|
|
|
2023-08-11 02:35:46 +08:00
|
|
|
event(new OnStart($server));
|
|
|
|
|
}
|
2022-06-16 17:38:22 +08:00
|
|
|
|
|
|
|
|
|
2023-08-11 02:35:46 +08:00
|
|
|
/**
|
|
|
|
|
* @param SServer $server
|
2023-12-12 15:35:34 +08:00
|
|
|
* @throws
|
2023-08-11 02:35:46 +08:00
|
|
|
*/
|
|
|
|
|
public function onBeforeShutdown(SServer $server): void
|
|
|
|
|
{
|
|
|
|
|
event(new OnBeforeShutdown($server));
|
|
|
|
|
}
|
2022-06-16 17:38:22 +08:00
|
|
|
|
|
|
|
|
|
2023-08-11 02:35:46 +08:00
|
|
|
/**
|
|
|
|
|
* @param SServer $server
|
|
|
|
|
* @throws
|
|
|
|
|
*/
|
|
|
|
|
public function onShutdown(SServer $server): void
|
|
|
|
|
{
|
|
|
|
|
@unlink(storage('.swoole.pid'));
|
|
|
|
|
event(new OnShutdown($server));
|
|
|
|
|
}
|
2022-01-09 03:49:02 +08:00
|
|
|
|
|
|
|
|
}
|