Dealer_Onboarding_Backend/src/common/queues/sla.worker.ts

23 lines
734 B
TypeScript

import { Worker } from 'bullmq';
import { redisConfig } from './config.js';
import { SLAService } from '../../services/SLAService.js';
export const slaWorker = new Worker('slaQueue', async (job) => {
console.log(`[SLA Worker] Processing job ${job.id} of type ${job.name}`);
if (job.name === 'checkSLABreaches') {
await SLAService.checkBreaches();
}
}, {
connection: redisConfig,
concurrency: 1 // Single concurrency for SLA checks to avoid race conditions
});
slaWorker.on('completed', (job) => {
console.log(`[SLA Worker] Job ${job.id} completed successfully`);
});
slaWorker.on('failed', (job, err) => {
console.error(`[SLA Worker] Job ${job?.id} failed with error: ${err.message}`);
});