summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
author4censord <mail@4censord.de>2024-08-04 18:09:48 +0200
committer4censord <mail@4censord.de>2024-08-06 00:35:35 +0200
commit0386e52d6f8231a879ccf72e166b04f71b9d11db (patch)
tree2e9cb99455d242a5e879b8cd71e196abfe9b7d63 /packages
parentmerge: error out when we can't start workers - fixes #586 (!578) (diff)
downloadsharkey-0386e52d6f8231a879ccf72e166b04f71b9d11db.tar.gz
sharkey-0386e52d6f8231a879ccf72e166b04f71b9d11db.tar.bz2
sharkey-0386e52d6f8231a879ccf72e166b04f71b9d11db.zip
Impove the check_connect script
Diffstat (limited to 'packages')
-rw-r--r--packages/backend/scripts/check_connect.js32
1 files changed, 27 insertions, 5 deletions
diff --git a/packages/backend/scripts/check_connect.js b/packages/backend/scripts/check_connect.js
index ba25fd416c..d4bf4baf43 100644
--- a/packages/backend/scripts/check_connect.js
+++ b/packages/backend/scripts/check_connect.js
@@ -5,11 +5,33 @@
import Redis from 'ioredis';
import { loadConfig } from '../built/config.js';
+import { createPostgresDataSource } from '../built/postgres.js';
const config = loadConfig();
-const redis = new Redis(config.redis);
-redis.on('connect', () => redis.disconnect());
-redis.on('error', (e) => {
- throw e;
-});
+// createPostgresDataSource handels primaries and replicas automatically.
+// usually, it only opens connections first use, so we force it using
+// .initialize()
+createPostgresDataSource(config)
+ .initialize()
+ .then(c => { c.destroy() })
+ .catch(e => { throw e });
+
+
+// Connect to all redis servers
+function connectToRedis(redisOptions) {
+ const redis = new Redis(redisOptions);
+ redis.on('connect', () => redis.disconnect());
+ redis.on('error', (e) => {
+ throw e;
+ });
+}
+
+// If not all of these are defined, the default one gets reused.
+// so we use a Set to only try connecting once to each **uniq** redis.
+(new Set([
+ config.redis,
+ config.redisForPubsub,
+ config.redisForJobQueue,
+ config.redisForTimelines,
+])).forEach(connectToRedis);