feat: Adjusting Doctor to new pools
This commit is contained in:
parent
0bd9426aa7
commit
ba629e94ef
1 changed files with 53 additions and 21 deletions
|
@ -6,10 +6,13 @@ use Appwrite\ClamAV\Network;
|
||||||
use Appwrite\Utopia\Queue\Connections;
|
use Appwrite\Utopia\Queue\Connections;
|
||||||
use Utopia\CLI\Console;
|
use Utopia\CLI\Console;
|
||||||
use Utopia\Config\Config;
|
use Utopia\Config\Config;
|
||||||
|
use Utopia\Database\Adapter\MariaDB;
|
||||||
|
use Utopia\Database\Adapter\MySQL;
|
||||||
use Utopia\Domains\Domain;
|
use Utopia\Domains\Domain;
|
||||||
use Utopia\Http\Http;
|
use Utopia\Http\Http;
|
||||||
use Utopia\Logger\Logger;
|
use Utopia\Logger\Logger;
|
||||||
use Utopia\Platform\Action;
|
use Utopia\Platform\Action;
|
||||||
|
use Utopia\Queue\Connection\Redis;
|
||||||
use Utopia\Registry\Registry;
|
use Utopia\Registry\Registry;
|
||||||
use Utopia\Storage\Device\Local;
|
use Utopia\Storage\Device\Local;
|
||||||
use Utopia\Storage\Storage;
|
use Utopia\Storage\Storage;
|
||||||
|
@ -119,24 +122,41 @@ class Doctor extends Action
|
||||||
//throw $th;
|
//throw $th;
|
||||||
}
|
}
|
||||||
|
|
||||||
$pools = $register->get('pools'); /** @var \Utopia\Pools\Group $pools */
|
/** @var array $pools */
|
||||||
|
$pools = $register->get('pools');
|
||||||
|
|
||||||
$configs = [
|
$configs = [
|
||||||
'Console.DB' => Config::getParam('pools-console'),
|
'Console.DB' => [
|
||||||
'Projects.DB' => Config::getParam('pools-database'),
|
'prefix' => 'console',
|
||||||
|
'databases' => Config::getParam('pools-console')
|
||||||
|
],
|
||||||
|
'Database.DB' => [
|
||||||
|
'prefix' => 'database',
|
||||||
|
'databases' => Config::getParam('pools-database')
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
foreach ($configs as $key => $config) {
|
foreach ($configs as $key => $config) {
|
||||||
foreach ($config as $database) {
|
foreach ($config['databases'] as $database) {
|
||||||
try {
|
try {
|
||||||
$connection = $pools->get($database)->pop();
|
$pool = $pools['pools-' . $config['prefix'] . '-' . $database]['pool'];
|
||||||
$connections->add($connection);
|
$dsn = $pools['pools-' . $config['prefix'] . '-' . $database]['dsn'];
|
||||||
$adapter = $connection->getResource();
|
|
||||||
|
$connection = $pool->get();
|
||||||
|
$connections->add($connection, $pool);
|
||||||
|
$adapter = match ($dsn->getScheme()) {
|
||||||
|
'mariadb' => new MariaDB($connection),
|
||||||
|
'mysql' => new MySQL($connection),
|
||||||
|
default => null
|
||||||
|
};
|
||||||
|
$adapter->setDatabase($dsn->getPath());
|
||||||
|
|
||||||
|
|
||||||
if ($adapter->ping()) {
|
if ($adapter->ping()) {
|
||||||
Console::success('🟢 ' . str_pad("{$key}({$database})", 50, '.') . 'connected');
|
Console::success('🟢 ' . str_pad("$key({$database})", 50, '.') . 'connected');
|
||||||
} else {
|
} else {
|
||||||
Console::error('🔴 ' . str_pad("{$key}({$database})", 47, '.') . 'disconnected');
|
Console::error('🔴 ' . str_pad("$key({$database})", 47, '.') . 'disconnected');
|
||||||
}
|
}
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
Console::error('🔴 ' . str_pad("{$key}.({$database})", 47, '.') . 'disconnected');
|
Console::error('🔴 ' . str_pad("{$key}.({$database})", 47, '.') . 'disconnected');
|
||||||
|
@ -144,27 +164,39 @@ class Doctor extends Action
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$pools = $register->get('pools'); /** @var \Utopia\Pools\Group $pools */
|
/** @var array $pools */
|
||||||
|
$pools = $register->get('pools');
|
||||||
$configs = [
|
$configs = [
|
||||||
'Cache' => Config::getParam('pools-cache'),
|
'Cache' => [
|
||||||
'Queue' => Config::getParam('pools-queue'),
|
'prefix' => 'cache',
|
||||||
'PubSub' => Config::getParam('pools-pubsub'),
|
'databases' => Config::getParam('pools-cache')
|
||||||
|
],
|
||||||
|
'Queue' => [
|
||||||
|
'prefix' => 'queue',
|
||||||
|
'databases' => Config::getParam('pools-queue')
|
||||||
|
],
|
||||||
|
'PubSub' => [
|
||||||
|
'prefix' => 'pubsub',
|
||||||
|
'databases' => Config::getParam('pools-pubsub')
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($configs as $key => $config) {
|
foreach ($configs as $key => $config) {
|
||||||
foreach ($config as $pool) {
|
foreach ($config['databases'] as $database) {
|
||||||
try {
|
try {
|
||||||
$connection = $pools->get($pool)->pop();
|
$pool = $pools['pools-' . $config['prefix'] . '-' . $database]['pool'];
|
||||||
$connections->add($connection);
|
$dsn = $pools['pools-' . $config['prefix'] . '-' . $database]['dsn'];
|
||||||
$adapter = $connection->getResource();
|
$connection = $pool->get();
|
||||||
|
$connections->add($connection, $pool);
|
||||||
|
|
||||||
|
$adapter = new Redis($dsn->getHost(), $dsn->getPort());
|
||||||
|
|
||||||
if ($adapter->ping()) {
|
if ($adapter->ping()) {
|
||||||
Console::success('🟢 ' . str_pad("{$key}({$pool})", 50, '.') . 'connected');
|
Console::success('🟢 ' . str_pad("{$key}({$database})", 50, '.') . 'connected');
|
||||||
} else {
|
} else {
|
||||||
Console::error('🔴 ' . str_pad("{$key}({$pool})", 47, '.') . 'disconnected');
|
Console::error('🔴 ' . str_pad("{$key}({$database})", 47, '.') . 'disconnected');
|
||||||
}
|
}
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
Console::error('🔴 ' . str_pad("{$key}({$pool})", 47, '.') . 'disconnected');
|
Console::error('🔴 ' . str_pad("{$key}({$database})", 47, '.') . 'disconnected');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue