2021-07-18 12:06:56 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Server\Manager;
|
|
|
|
|
|
2021-07-23 17:17:58 +08:00
|
|
|
use Exception;
|
2021-07-19 19:04:13 +08:00
|
|
|
use Server\Abstracts\Server;
|
|
|
|
|
use Server\Constant;
|
2021-07-23 17:12:20 +08:00
|
|
|
use Server\SInterface\PipeMessage;
|
2021-07-23 17:17:58 +08:00
|
|
|
use Snowflake\Event;
|
2021-07-19 19:04:13 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2021-07-23 17:12:20 +08:00
|
|
|
* Class ServerDefaultEvent
|
2021-07-19 19:04:13 +08:00
|
|
|
* @package Server\Manager
|
|
|
|
|
*/
|
2021-07-23 17:12:20 +08:00
|
|
|
class ServerDefaultEvent extends Server
|
2021-07-18 12:06:56 +08:00
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
2021-07-19 19:04:13 +08:00
|
|
|
/**
|
|
|
|
|
* @param \Swoole\Server $server
|
|
|
|
|
*/
|
|
|
|
|
public function onStart(\Swoole\Server $server)
|
2021-07-18 12:06:56 +08:00
|
|
|
{
|
2021-07-26 02:58:45 +08:00
|
|
|
$this->setProcessName(sprintf('start[%d].server', $server->master_pid));
|
2021-07-26 02:55:55 +08:00
|
|
|
|
|
|
|
|
$this->runEvent(Constant::START, null, [$server]);
|
2021-07-18 12:06:56 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-07-19 19:04:13 +08:00
|
|
|
/**
|
|
|
|
|
* @param \Swoole\Server $server
|
|
|
|
|
*/
|
|
|
|
|
public function onShutdown(\Swoole\Server $server)
|
2021-07-18 12:06:56 +08:00
|
|
|
{
|
2021-07-19 19:04:13 +08:00
|
|
|
$this->runEvent(Constant::SHUTDOWN, null, [$server]);
|
2021-07-18 12:06:56 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-07-19 19:04:13 +08:00
|
|
|
/**
|
|
|
|
|
* @param \Swoole\Server $server
|
|
|
|
|
* @param int $src_worker_id
|
|
|
|
|
* @param mixed $message
|
2021-07-23 17:17:58 +08:00
|
|
|
* @throws Exception
|
2021-07-19 19:04:13 +08:00
|
|
|
*/
|
|
|
|
|
public function onPipeMessage(\Swoole\Server $server, int $src_worker_id, mixed $message)
|
2021-07-18 12:06:56 +08:00
|
|
|
{
|
2021-07-23 17:12:20 +08:00
|
|
|
if (!is_object($message) || !($message instanceof PipeMessage)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2021-07-23 17:17:58 +08:00
|
|
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
|
|
|
|
$this->runEvent(Constant::PIPE_MESSAGE,
|
|
|
|
|
function (\Swoole\Server $server, $src_worker_id, $message) {
|
2021-07-23 18:08:10 +08:00
|
|
|
call_user_func([$message, 'execute']);
|
2021-07-23 17:17:58 +08:00
|
|
|
}, [
|
|
|
|
|
$server, $src_worker_id, $message
|
|
|
|
|
]
|
|
|
|
|
);
|
2021-07-18 12:06:56 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-07-19 19:04:13 +08:00
|
|
|
/**
|
|
|
|
|
* @param \Swoole\Server $server
|
|
|
|
|
*/
|
|
|
|
|
public function onBeforeReload(\Swoole\Server $server)
|
2021-07-18 12:06:56 +08:00
|
|
|
{
|
2021-07-23 17:12:20 +08:00
|
|
|
$this->runEvent(Constant::BEFORE_RELOAD, null, [$server]);
|
2021-07-18 12:06:56 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-07-19 19:04:13 +08:00
|
|
|
/**
|
|
|
|
|
* @param \Swoole\Server $server
|
|
|
|
|
*/
|
|
|
|
|
public function onAfterReload(\Swoole\Server $server)
|
2021-07-18 12:06:56 +08:00
|
|
|
{
|
2021-07-23 17:12:20 +08:00
|
|
|
$this->runEvent(Constant::AFTER_RELOAD, null, [$server]);
|
2021-07-18 12:06:56 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|