Improve Redis error handling

This commit is contained in:
Tom Moor
2023-10-22 13:59:29 -04:00
parent fb74494108
commit 1a3b2dc307
2 changed files with 6 additions and 2 deletions

View File

@@ -85,8 +85,7 @@ export default function init(
io.of("/").adapter.on("error", (err: Error) => {
if (err.name === "MaxRetriesPerRequestError") {
Logger.error("Redis maximum retries exceeded in socketio adapter", err);
throw err;
Logger.fatal("Redis maximum retries exceeded in socketio adapter", err);
} else {
Logger.error("Redis error in socketio adapter", err);
}

View File

@@ -11,12 +11,17 @@ type RedisAdapterOptions = RedisOptions & {
const defaultOptions: RedisOptions = {
maxRetriesPerRequest: 20,
enableReadyCheck: false,
showFriendlyErrorStack: env.ENVIRONMENT === "development",
retryStrategy(times: number) {
Logger.warn(`Retrying redis connection: attempt ${times}`);
return Math.min(times * 100, 3000);
},
reconnectOnError(err) {
return err.message.includes("READONLY");
},
// support Heroku Redis, see:
// https://devcenter.heroku.com/articles/heroku-redis#ioredis-module
tls: (env.REDIS_URL || "").startsWith("rediss://")