变更
This commit is contained in:
+28
-9
@@ -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));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user