37 lines
921 B
TypeScript
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 };
|
|
|