This commit is contained in:
2021-04-07 11:26:58 +08:00
parent 5e6725015d
commit 7418264e5e
4 changed files with 16 additions and 58 deletions
-39
View File
@@ -27,25 +27,6 @@ abstract class Callback extends HttpService
{
/**
* @param $server
* @param $worker_id
* @param $message
* @throws Exception
*/
protected function clear(Server $server, $worker_id, $message)
{
try {
/** @var Process $logger */
$logger = Snowflake::app()->get(LoggerProcess::class);
$logger->write(Json::encode([$this->_MESSAGE[$message] . $worker_id, 'log/app']));
$this->eventNotify($message);
} catch (\Throwable $exception) {
$this->addError($exception, 'throwable');
}
}
const EVENT_ERROR = 'WORKER:ERROR';
const EVENT_STOP = 'WORKER:STOP';
@@ -58,24 +39,6 @@ abstract class Callback extends HttpService
self::EVENT_EXIT => 'The server exit. at No.',
];
/**
* @param $message
* @throws Exception
*/
private function eventNotify($message)
{
switch ($message) {
case self::EVENT_ERROR:
fire(Event::SERVER_WORKER_ERROR);
break;
case self::EVENT_EXIT:
fire(Event::SERVER_WORKER_EXIT);
break;
case self::EVENT_STOP:
fire(Event::SERVER_WORKER_STOP);
break;
}
}
/**
@@ -132,7 +95,6 @@ abstract class Callback extends HttpService
/**
* @throws ConfigException
* @throws ComponentException
* @throws Exception
*/
protected function clearMysqlClient()
@@ -155,7 +117,6 @@ abstract class Callback extends HttpService
/**
* @throws ConfigException
* @throws ComponentException
* @throws Exception
*/
protected function clearRedisClient()
+7 -14
View File
@@ -6,11 +6,8 @@ namespace HttpServer\Events;
use Exception;
use HttpServer\Abstracts\Callback;
use Snowflake\Abstracts\Config;
use Snowflake\Event;
use Snowflake\Exception\ConfigException;
use Snowflake\Snowflake;
use Swoole\Coroutine;
use Swoole\Server;
/**
@@ -33,18 +30,14 @@ class OnWorkerError extends Callback
{
$event = Snowflake::app()->getEvent();
$event->trigger(Event::SERVER_WORKER_ERROR);
$event->offName(Event::SERVER_WORKER_ERROR);
$this->clear($server, $worker_id, self::EVENT_ERROR);
if (!Config::has('email')) {
return;
}
$this->system_mail(print_r([
'$worker_pid' => $worker_pid,
'$worker_id' => $worker_id,
'$exit_code' => $exit_code,
'$signal' => $signal,
], true));
$message = sprintf('Worker#%d error stop. signal %d, exit_code %d',
$worker_id, $signal, $exit_code
);
write($message, 'worker-exit');
\logger()->insert();
}
}
+1 -3
View File
@@ -8,6 +8,7 @@ use Exception;
use HttpServer\Abstracts\Callback;
use Snowflake\Event;
use Snowflake\Snowflake;
use Swoole\Timer;
/**
* Class OnWorkerExit
@@ -30,9 +31,6 @@ class OnWorkerExit extends Callback
$event = Snowflake::app()->getEvent();
$event->trigger(Event::SERVER_WORKER_EXIT);
$event->offName(Event::SERVER_WORKER_EXIT);
$this->clear($server, $worker_id, self::EVENT_EXIT);
\logger()->insert();
}
+8 -2
View File
@@ -6,8 +6,10 @@ namespace HttpServer\Events;
use Exception;
use HttpServer\Abstracts\Callback;
use Snowflake\Error\Logger;
use Snowflake\Event;
use Snowflake\Snowflake;
use Swoole\Timer;
/**
* Class OnWorkerStop
@@ -26,9 +28,13 @@ class OnWorkerStop extends Callback
{
$event = Snowflake::app()->getEvent();
$event->trigger(Event::SERVER_WORKER_STOP);
$event->offName(Event::SERVER_WORKER_STOP);
$this->clear($server, $worker_id, self::EVENT_STOP);
$this->clearMysqlClient();
$this->clearRedisClient();
Timer::clearAll();
\logger()->insert();
}
}