diff options
| author | misskey-release-bot[bot] <157398866+misskey-release-bot[bot]@users.noreply.github.com> | 2024-11-22 09:15:34 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-22 09:15:34 +0000 |
| commit | e8518de054166e8293059a2f9d285718c6316f38 (patch) | |
| tree | a416a001115f7478e3a4788abcd59b1b3c0af7c3 /packages/backend/scripts | |
| parent | Merge pull request #14741 from misskey-dev/develop (diff) | |
| parent | Release: 2024.11.0 (diff) | |
| download | misskey-e8518de054166e8293059a2f9d285718c6316f38.tar.gz misskey-e8518de054166e8293059a2f9d285718c6316f38.tar.bz2 misskey-e8518de054166e8293059a2f9d285718c6316f38.zip | |
Merge pull request #14924 from misskey-dev/develop
Release: 2024.11.0
Diffstat (limited to 'packages/backend/scripts')
| -rw-r--r-- | packages/backend/scripts/check_connect.js | 51 |
1 files changed, 46 insertions, 5 deletions
diff --git a/packages/backend/scripts/check_connect.js b/packages/backend/scripts/check_connect.js index ba25fd416c..bb149444b5 100644 --- a/packages/backend/scripts/check_connect.js +++ b/packages/backend/scripts/check_connect.js @@ -5,11 +5,52 @@ 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; -}); +async function connectToPostgres() { + const source = createPostgresDataSource(config); + await source.initialize(); + await source.destroy(); +} + +async function connectToRedis(redisOptions) { + return await new Promise(async (resolve, reject) => { + const redis = new Redis({ + ...redisOptions, + lazyConnect: true, + reconnectOnError: false, + showFriendlyErrorStack: true, + }); + redis.on('error', e => reject(e)); + + try { + await redis.connect(); + resolve(); + + } catch (e) { + reject(e); + + } finally { + redis.disconnect(false); + } + }); +} + +// 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. +const promises = Array + .from(new Set([ + config.redis, + config.redisForPubsub, + config.redisForJobQueue, + config.redisForTimelines, + config.redisForReactions, + ])) + .map(connectToRedis) + .concat([ + connectToPostgres() + ]); + +await Promise.allSettled(promises); |