diff --git a/apps/backend/redis-client.js b/apps/backend/redis-client.js index ef236a4..83bc16c 100644 --- a/apps/backend/redis-client.js +++ b/apps/backend/redis-client.js @@ -5,7 +5,11 @@ import * as appMetrics from './src/metrics.js'; const redisClient = createClient({ socket: { host: process.env.REDIS_HOST || 'localhost', - port: process.env.REDIS_PORT || 6379 + port: process.env.REDIS_PORT || 6379, + reconnectStrategy: (retries) => { + if (retries > 10) return new Error('Redis max retries reached'); + return Math.min(retries * 100, 3000); + } }, password: process.env.REDIS_PASSWORD || undefined }); @@ -44,5 +48,9 @@ redisClient.setEx = async (...args) => { // Connect to Redis await redisClient.connect(); +// Connect to Redis — skip in test (services are mocked) or when REDIS_URL is unset +if (process.env.NODE_ENV !== 'test') { + await redisClient.connect(); +} export default redisClient;