summaryrefslogtreecommitdiff
path: root/packages/backend/scripts
diff options
context:
space:
mode:
authormisskey-release-bot[bot] <157398866+misskey-release-bot[bot]@users.noreply.github.com>2024-11-22 09:15:34 +0000
committerGitHub <noreply@github.com>2024-11-22 09:15:34 +0000
commite8518de054166e8293059a2f9d285718c6316f38 (patch)
treea416a001115f7478e3a4788abcd59b1b3c0af7c3 /packages/backend/scripts
parentMerge pull request #14741 from misskey-dev/develop (diff)
parentRelease: 2024.11.0 (diff)
downloadmisskey-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.js51
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);