diff options
| author | 4censord <mail@4censord.de> | 2024-08-04 18:09:48 +0200 |
|---|---|---|
| committer | 4censord <mail@4censord.de> | 2024-08-06 00:35:35 +0200 |
| commit | 0386e52d6f8231a879ccf72e166b04f71b9d11db (patch) | |
| tree | 2e9cb99455d242a5e879b8cd71e196abfe9b7d63 | |
| parent | merge: error out when we can't start workers - fixes #586 (!578) (diff) | |
| download | sharkey-0386e52d6f8231a879ccf72e166b04f71b9d11db.tar.gz sharkey-0386e52d6f8231a879ccf72e166b04f71b9d11db.tar.bz2 sharkey-0386e52d6f8231a879ccf72e166b04f71b9d11db.zip | |
Impove the check_connect script
| -rw-r--r-- | packages/backend/scripts/check_connect.js | 32 |
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); |