Files
kiri-core/HttpServer/Events/OnStart.php
T

46 lines
820 B
PHP
Raw Normal View History

2020-08-31 01:27:08 +08:00
<?php
2020-09-02 11:38:47 +08:00
namespace HttpServer\Events;
2020-08-31 01:27:08 +08:00
2020-09-04 01:05:33 +08:00
use HttpServer\Abstracts\Callback;
2020-09-07 16:50:26 +08:00
use Snowflake\Abstracts\Config;
2020-08-31 01:27:08 +08:00
use Snowflake\Event;
use Snowflake\Snowflake;
2020-10-21 14:55:58 +08:00
use Swoole\Coroutine\System;
use Swoole\Process;
2020-08-31 01:27:08 +08:00
use Swoole\Server;
class OnStart extends Callback
{
/**
* @param Server $server
* @throws \Exception
*/
2020-10-21 14:55:58 +08:00
public function onHandler(Server $server)
2020-08-31 01:27:08 +08:00
{
2020-09-07 16:08:17 +08:00
Snowflake::setProcessId($server->master_pid);
2020-09-07 16:50:26 +08:00
2020-09-03 11:39:20 +08:00
$event = Snowflake::app()->event;
2020-09-18 21:17:44 +08:00
$event->trigger(Event::SERVER_EVENT_START, null, $server);
2020-09-07 16:50:26 +08:00
if (Snowflake::isLinux()) {
name(rtrim(Config::get('id', 'system:'), ':'));
}
2020-10-21 15:11:46 +08:00
2020-10-21 15:12:14 +08:00
Process::signal(9, function () use ($server) {
2020-10-21 15:11:46 +08:00
while ($ret = Process::wait()) {
if ($ret['signal'] == 9 || $ret['signal'] == 15) {
$server->shutdown();
} else {
$server->reload();
}
}
});
2020-08-31 01:27:08 +08:00
}
}