Dealer_Onboarding_Backend/src/common/queues/offboarding-lwd.worker.ts

36 lines
1.2 KiB
TypeScript

import { Worker } from 'bullmq';
import { redisConfig } from './config.js';
import { OffboardingLwdReminderService } from '../../services/OffboardingLwdReminderService.js';
export const offboardingLwdWorker = new Worker(
'offboardingLwdQueue',
async (job) => {
console.log(`[Offboarding LWD Worker] Processing job ${job.id} (${job.name})`);
if (job.name === 'checkLwdFnfReminders') {
await OffboardingLwdReminderService.processAllPendingReminders();
return;
}
if (job.name === 'sendLwdFnfReminder') {
const payload = job.data as { requestType: 'resignation' | 'termination'; requestId: string };
await OffboardingLwdReminderService.processOne(payload);
return;
}
console.warn(`[Offboarding LWD Worker] Unknown job name: ${job.name}`);
},
{
connection: redisConfig,
concurrency: 2
}
);
offboardingLwdWorker.on('completed', (job) => {
console.log(`[Offboarding LWD Worker] Job ${job.id} completed`);
});
offboardingLwdWorker.on('failed', (job, err) => {
console.error(`[Offboarding LWD Worker] Job ${job?.id} failed: ${err.message}`);
});