This commit is contained in:
2022-06-23 00:45:43 +08:00
parent 0d4a690e28
commit e0fc63d78c
+10 -6
View File
@@ -58,15 +58,20 @@ class DatabasesProviders extends Providers
/** /**
* @param OnWorkerExit $exit * @param OnWorkerExit $exit
* @return void * @return void
* @throws ConfigException
* @throws Exception
*/ */
public function exit(OnWorkerExit $exit): void public function exit(OnWorkerExit $exit): void
{ {
$id = (int)Kiri\Context::getContext('db.loop.id'); Timer::clearAll();
if (!empty($id)) { $databases = Config::get('databases.connections', []);
Timer::clear($id); if (!empty($databases)) {
$connection = Kiri::getDi()->get(PoolConnection::class);
foreach ($databases as $database) {
$connection->disconnect($database['cds']);
}
} }
} }
/** /**
* @param $name * @param $name
@@ -85,7 +90,7 @@ class DatabasesProviders extends Providers
*/ */
public function check(OnTaskerStart|OnWorkerStart $start): void public function check(OnTaskerStart|OnWorkerStart $start): void
{ {
$timerTick = Timer::tick(50 * 1000, static function () use ($start) { Timer::tick(50 * 1000, static function () use ($start) {
$databases = Config::get('databases.connections', []); $databases = Config::get('databases.connections', []);
$valid = 0; $valid = 0;
$count = 0; $count = 0;
@@ -114,7 +119,6 @@ class DatabasesProviders extends Providers
} }
$logger->alert(sprintf('Worker %d db client has %d, valid %d', $start->workerId, $count, $valid)); $logger->alert(sprintf('Worker %d db client has %d, valid %d', $start->workerId, $count, $valid));
}); });
Kiri\Context::setContext('db.loop.id', $timerTick);
} }