From 1b051d32feefdee034fa5e6a3bbb8bc062f665de Mon Sep 17 00:00:00 2001 From: kodumbeats Date: Tue, 20 Jul 2021 15:13:00 -0400 Subject: [PATCH] Attempt to reconnect deletes worker to db --- app/workers/deletes.php | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/app/workers/deletes.php b/app/workers/deletes.php index 1242d7a8ab..751c7db054 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -389,9 +389,27 @@ class DeletesV1 extends Worker { global $register; - $cache = new Cache(new RedisCache($register->get('cache'))); - $dbForConsole = new Database(new MariaDB($register->get('db')), $cache); - $dbForConsole->setNamespace('project_console_internal'); // Main DB + // wait for database to be ready + $attempts = 0; + $max = 5; + $sleep = 5; + + do { + try { + $attempts++; + $cache = new Cache(new RedisCache($register->get('cache'))); + $dbForConsole = new Database(new MariaDB($register->get('db')), $cache); + $dbForConsole->setNamespace('project_console_internal'); // Main DB + break; // leave the do-while if successful + } catch(\Exception $e) { + Console::warning("Database not ready. Retrying connection ({$attempts})..."); + if ($attempts >= $max) { + throw new \Exception('Failed to connect to database: '. $e->getMessage()); + } + sleep($sleep); + continue; + } + } while ($attempts < $max); return $dbForConsole; }