This commit is contained in:
as2252258@163.com
2021-04-23 03:25:03 +08:00
parent 0c5e05b6a2
commit a5a607495f
11 changed files with 261 additions and 248 deletions
+4 -3
View File
@@ -27,6 +27,10 @@ class OnClose extends Callback
public function onHandler(Server $server, int $fd) public function onHandler(Server $server, int $fd)
{ {
try { try {
defer(function () {
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger_insert();
});
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$event = Snowflake::app()->getEvent(); $event = Snowflake::app()->getEvent();
@@ -36,9 +40,6 @@ class OnClose extends Callback
$event->trigger($name, [$server, $fd]); $event->trigger($name, [$server, $fd]);
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->addError($exception, 'throwable'); $this->addError($exception, 'throwable');
} finally {
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger_insert();
} }
} }
+5 -2
View File
@@ -26,6 +26,11 @@ class OnConnect extends Callback
*/ */
public function onHandler(Server $server, int $fd, int $reactorId) public function onHandler(Server $server, int $fd, int $reactorId)
{ {
defer(function () {
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger_insert();
});
$event = Snowflake::app()->getEvent(); $event = Snowflake::app()->getEvent();
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
@@ -37,8 +42,6 @@ class OnConnect extends Callback
} catch (\Throwable $throwable) { } catch (\Throwable $throwable) {
$this->addError($throwable, 'connect'); $this->addError($throwable, 'connect');
} }
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger_insert();
} }
+4
View File
@@ -27,6 +27,10 @@ class OnFinish extends Callback
public function onHandler(Server $server, $task_id, $data) public function onHandler(Server $server, $task_id, $data)
{ {
try { try {
defer(function () {
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger_insert();
});
fire(Event::TASK_FINISH, [$task_id, $data]); fire(Event::TASK_FINISH, [$task_id, $data]);
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->addError($exception, 'task'); $this->addError($exception, 'task');
+4 -3
View File
@@ -97,14 +97,15 @@ class OnHandshake extends Callback
public function onHandler(SRequest $request, SResponse $response): void public function onHandler(SRequest $request, SResponse $response): void
{ {
try { try {
defer(function () {
fire(Event::SYSTEM_RESOURCE_CLEAN);
logger_insert();
});
$this->execute($request, $response); $this->execute($request, $response);
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->addError($exception, 'throwable'); $this->addError($exception, 'throwable');
$response->status(500); $response->status(500);
$response->end($exception->getMessage()); $response->end($exception->getMessage());
} finally {
fire(Event::SYSTEM_RESOURCE_CLEAN);
logger_insert();
} }
} }
+4 -3
View File
@@ -38,6 +38,10 @@ class OnMessage extends Callback
public function onHandler(Server $server, Frame $frame) public function onHandler(Server $server, Frame $frame)
{ {
try { try {
defer(function () {
fire(Event::SYSTEM_RESOURCE_CLEAN);
logger_insert();
});
if ($frame->opcode === 0x08) { if ($frame->opcode === 0x08) {
return; return;
} }
@@ -51,9 +55,6 @@ class OnMessage extends Callback
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->addError($exception, 'websocket'); $this->addError($exception, 'websocket');
$server->send($frame->fd, $exception->getMessage()); $server->send($frame->fd, $exception->getMessage());
} finally {
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger_insert();
} }
} }
+1 -1
View File
@@ -36,7 +36,7 @@ class OnPacket extends Callback
{ {
[$host, $port] = [$clientInfo['address'], $clientInfo['port']]; [$host, $port] = [$clientInfo['address'], $clientInfo['port']];
try { try {
\Swoole\Coroutine\defer(function () { defer(function () {
fire(Event::SYSTEM_RESOURCE_RELEASES); fire(Event::SYSTEM_RESOURCE_RELEASES);
\logger_insert(); \logger_insert();
}); });
+4 -3
View File
@@ -26,14 +26,15 @@ class OnPipeMessage extends Callback
*/ */
public function onHandler(Server $server, int $src_worker_id, $swollen_universalize) public function onHandler(Server $server, int $src_worker_id, $swollen_universalize)
{ {
go(function () use ($server, $src_worker_id, $swollen_universalize) { defer(function () {
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger_insert();
});
match ($swollen_universalize['action'] ?? null) { match ($swollen_universalize['action'] ?? null) {
'kafka' => $this->onKafkaWorker($swollen_universalize), 'kafka' => $this->onKafkaWorker($swollen_universalize),
'crontab' => $this->onCrontabWorker($swollen_universalize), 'crontab' => $this->onCrontabWorker($swollen_universalize),
default => $this->onMessageWorker($server, $src_worker_id, $swollen_universalize) default => $this->onMessageWorker($server, $src_worker_id, $swollen_universalize)
}; };
fire(Event::SYSTEM_RESOURCE_RELEASES);
});
} }
+1 -1
View File
@@ -48,7 +48,7 @@ class OnReceive extends Callback
public function onHandler(Server $server, int $fd, int $reID, string $data): mixed public function onHandler(Server $server, int $fd, int $reID, string $data): mixed
{ {
try { try {
\Swoole\Coroutine\defer(function (){ defer(function (){
fire(Event::SYSTEM_RESOURCE_RELEASES); fire(Event::SYSTEM_RESOURCE_RELEASES);
\logger_insert(); \logger_insert();
}); });
+4 -3
View File
@@ -47,6 +47,10 @@ class OnRequest extends Callback
public function onHandler(Request $request, Response $response): mixed public function onHandler(Request $request, Response $response): mixed
{ {
try { try {
defer(function () {
$this->event->trigger(Event::SYSTEM_RESOURCE_RELEASES);
$this->logger->insert();
});
/** @var HRequest $request */ /** @var HRequest $request */
[$request, $response] = OnRequest::createContext($request, $response); [$request, $response] = OnRequest::createContext($request, $response);
@@ -60,9 +64,6 @@ class OnRequest extends Callback
} catch (ExitException | Error | \Throwable $exception) { } catch (ExitException | Error | \Throwable $exception) {
$this->addError($exception, 'throwable'); $this->addError($exception, 'throwable');
return $this->sendErrorMessage($request, $response, $exception); return $this->sendErrorMessage($request, $response, $exception);
} finally {
$this->event->trigger(Event::SYSTEM_RESOURCE_RELEASES);
$this->logger->insert();
} }
} }
+4 -3
View File
@@ -102,6 +102,10 @@ class OnTask extends Callback
private function runTaskHandler($data): ?array private function runTaskHandler($data): ?array
{ {
try { try {
defer(function () {
fire(Event::SYSTEM_RESOURCE_CLEAN);
logger_insert();
});
$serialize = $this->before($data); $serialize = $this->before($data);
if ($serialize === null) { if ($serialize === null) {
throw new Exception('unpack error.'); throw new Exception('unpack error.');
@@ -121,9 +125,6 @@ class OnTask extends Callback
$this->addError($exception, 'Task'); $this->addError($exception, 'Task');
return $finish; return $finish;
} finally {
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger_insert();
} }
} }
+2 -2
View File
@@ -31,8 +31,8 @@ class OnWorkerError extends Callback
$event = Snowflake::app()->getEvent(); $event = Snowflake::app()->getEvent();
$event->trigger(Event::SERVER_WORKER_ERROR); $event->trigger(Event::SERVER_WORKER_ERROR);
$message = sprintf('Worker#%d error stop. signal %d, exit_code %d', $message = sprintf('Worker#%d::%d error stop. signal %d, exit_code %d',
$worker_id, $signal, $exit_code $worker_id, $signal, $worker_pid, $exit_code
); );
write($message, 'worker-exit'); write($message, 'worker-exit');