Re_Backend/src/queues/pauseResumeQueue.ts

37 lines
921 B
TypeScript

import { Queue } from 'bullmq';
import { sharedRedisConnection } from './redisConnection';
import logger from '@utils/logger';
let pauseResumeQueue: Queue | null = null;
try {
// Use shared Redis connection for both Queue and Worker
pauseResumeQueue = new Queue('pauseResumeQueue', {
connection: sharedRedisConnection,
defaultJobOptions: {
removeOnComplete: {
age: 86400, // Keep completed jobs for 24 hours
count: 1000
},
removeOnFail: false,
attempts: 3,
backoff: {
type: 'exponential',
delay: 5000
}
}
});
pauseResumeQueue.on('error', (error) => {
logger.error('[Pause Resume Queue] Queue error:', error);
});
logger.info('[Pause Resume Queue] ✅ Queue initialized');
} catch (error) {
logger.error('[Pause Resume Queue] Failed to initialize:', error);
pauseResumeQueue = null;
}
export { pauseResumeQueue };