Skip to content

Commit 42067db

Browse files
Trigger ci/cd
1 parent 02610d9 commit 42067db

File tree

1 file changed

+33
-9
lines changed

1 file changed

+33
-9
lines changed

server/utils/redisClient.js

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,55 @@ import { createClient } from 'redis';
22
import dotenv from 'dotenv';
33
dotenv.config();
44

5+
const REDIS_URL = process.env.REDIS_URL || 'redis://localhost:6379';
6+
57
const redisClient = createClient({
6-
url: process.env.REDIS_URL || 'redis://127.0.0.1:6379',
8+
url: REDIS_URL,
79
socket: {
8-
reconnectStrategy: retries => Math.min(retries * 50, 2000),
10+
reconnectStrategy: retries => {
11+
console.warn(`🔁 Redis reconnect attempt #${retries}`);
12+
return Math.min(retries * 100, 3000); // retry with backoff
13+
},
914
},
1015
});
1116

12-
redisClient.on('error', err => console.error('❌ Redis Client Error:', err));
13-
redisClient.on('connect', () => console.log('✅ Redis connected'));
14-
redisClient.on('reconnecting', () => console.log('♻️ Redis reconnecting...'));
17+
redisClient.on('error', err => {
18+
console.error('❌ Redis Client Error:', err.message);
19+
});
20+
21+
redisClient.on('connect', () => {
22+
console.log('✅ Redis connected');
23+
});
24+
25+
redisClient.on('ready', () => {
26+
console.log('🟢 Redis ready');
27+
});
28+
29+
redisClient.on('reconnecting', () => {
30+
console.log('🔄 Redis reconnecting...');
31+
});
1532

1633
const connectWithRetry = async (retries = 5) => {
17-
while (retries) {
34+
while (retries > 0) {
1835
try {
1936
await redisClient.connect();
20-
console.log('✅ Connected to Redis');
37+
console.log('🚀 Redis connection established');
2138
return redisClient;
2239
} catch (err) {
23-
console.error('⏳ Redis connection failed, retrying in 3s...');
40+
console.error(`⏳ Redis connection failed: ${err.message}`);
2441
retries--;
2542
await new Promise(res => setTimeout(res, 3000));
2643
}
2744
}
28-
throw new Error('❌ Could not connect to Redis after retries');
45+
throw new Error('❌ Redis not reachable after multiple attempts');
2946
};
3047

3148
await connectWithRetry();
49+
50+
process.on('SIGINT', async () => {
51+
await redisClient.quit();
52+
console.log('👋 Redis client closed');
53+
process.exit(0);
54+
});
55+
3256
export default redisClient;

0 commit comments

Comments
 (0)