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;
/**
* @var PoolConnection
*/
#[Inject(PoolConnection::class)]
public PoolConnection $connection;
/**
* @param LocalService $application
* @return void
@@ -66,9 +73,8 @@ class DatabasesProviders extends Providers
Timer::clearAll();
$databases = Config::get('databases.connections', []);
if (!empty($databases)) {
$connection = Kiri::getDi()->get(PoolConnection::class);
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
{
Timer::tick(50000, function () use ($start) {
$databases = Config::get('databases.connections', []);
$valid = 0;
$count = 0;
Timer::tick(50000, static function () use ($start) {
$valid = $count = 0;
$logger = Kiri::getDi()->get(LoggerInterface::class);
$databases = Config::get('databases.connections', []);
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);
foreach ($databases as $database) {
try {
@@ -117,9 +139,6 @@ class DatabasesProviders extends Providers
}
}
}
$logger->alert(sprintf('Worker %d db client has %d, valid %d', $start->workerId, $count, $valid));
});
}
/**