This commit is contained in:
2022-07-10 01:19:09 +08:00
parent bd3eb54a05
commit 86798409fd
+28 -9
View File
@@ -34,6 +34,13 @@ class DatabasesProviders extends Providers
public EventProvider $provider; public EventProvider $provider;
/**
* @var PoolConnection
*/
#[Inject(PoolConnection::class)]
public PoolConnection $connection;
/** /**
* @param LocalService $application * @param LocalService $application
* @return void * @return void
@@ -66,9 +73,8 @@ class DatabasesProviders extends Providers
Timer::clearAll(); Timer::clearAll();
$databases = Config::get('databases.connections', []); $databases = Config::get('databases.connections', []);
if (!empty($databases)) { if (!empty($databases)) {
$connection = Kiri::getDi()->get(PoolConnection::class);
foreach ($databases as $database) { foreach ($databases as $database) {
$connection->disconnect($database['cds']); $this->connection->disconnect($database['cds']);
} }
} }
} }
@@ -90,12 +96,28 @@ class DatabasesProviders extends Providers
*/ */
public function check(OnTaskerStart|OnWorkerStart $start): void public function check(OnTaskerStart|OnWorkerStart $start): void
{ {
Timer::tick(50000, function () use ($start) { Timer::tick(50000, static function () use ($start) {
$databases = Config::get('databases.connections', []); $valid = $count = 0;
$valid = 0;
$count = 0;
$logger = Kiri::getDi()->get(LoggerInterface::class); $logger = Kiri::getDi()->get(LoggerInterface::class);
$databases = Config::get('databases.connections', []);
if (!empty($databases)) { if (!empty($databases)) {
DatabasesProviders::each($databases, $logger, $count, $valid);
}
$const = 'Worker %d db client has %d, valid %d';
$logger->alert(sprintf($const, $start->workerId, $count, $valid));
});
}
/**
* @param $databases
* @param LoggerInterface $logger
* @param $count
* @param $valid
* @return void
*/
public static function each($databases, LoggerInterface $logger, &$count, &$valid): void
{
$connection = Kiri::getDi()->get(PoolConnection::class); $connection = Kiri::getDi()->get(PoolConnection::class);
foreach ($databases as $database) { foreach ($databases as $database) {
try { try {
@@ -117,9 +139,6 @@ class DatabasesProviders extends Providers
} }
} }
} }
$logger->alert(sprintf('Worker %d db client has %d, valid %d', $start->workerId, $count, $valid));
});
}
/** /**