merge: Improve the check_connect script (!588)

View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588

Approved-by: fEmber <acomputerdog@gmail.com>
Approved-by: dakkar <dakkar@thenautilus.net>
Approved-by: Marie <marie@kaifa.ch>
This commit is contained in:
dakkar 2024-08-06 10:39:27 +00:00
commit 5c3a4925d6

View File

@ -5,11 +5,33 @@
import Redis from 'ioredis'; import Redis from 'ioredis';
import { loadConfig } from '../built/config.js'; import { loadConfig } from '../built/config.js';
import { createPostgresDataSource } from '../built/postgres.js';
const config = loadConfig(); const config = loadConfig();
const redis = new Redis(config.redis);
redis.on('connect', () => redis.disconnect()); // createPostgresDataSource handels primaries and replicas automatically.
redis.on('error', (e) => { // usually, it only opens connections first use, so we force it using
throw e; // .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);