Improve Redis error handling
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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://")
|
||||
|
||||
Reference in New Issue
Block a user