bd7fe56330
The top-level await redisClient.connect() in redis-client.js was blocking module import when no Redis server is available (CI env). Add NODE_ENV guard + reconnect strategy with max retries.
32 lines
812 B
JavaScript
32 lines
812 B
JavaScript
import { createClient } from 'redis';
|
|
|
|
// Create Redis client
|
|
const redisClient = createClient({
|
|
socket: {
|
|
host: process.env.REDIS_HOST || 'localhost',
|
|
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
|
|
});
|
|
|
|
// Error handler
|
|
redisClient.on('error', (err) => {
|
|
console.error('Redis Client Error:', err);
|
|
});
|
|
|
|
// Connection handler
|
|
redisClient.on('connect', () => {
|
|
console.log('✅ Connected to Redis');
|
|
});
|
|
|
|
// 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;
|