30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import { Queue } from 'bullmq';
|
|
import { redisConfig } from './config.js';
|
|
|
|
export const questionnaireReminderQueue = new Queue('questionnaireReminderQueue', {
|
|
connection: redisConfig
|
|
});
|
|
|
|
/**
|
|
* Scheduled prospect reminders for pending questionnaires (not internal SLA).
|
|
* Default: daily 09:00 — or every 15 min when DEBUG_QUESTIONNAIRE_REMINDER_FAST_MODE=true.
|
|
*/
|
|
export const scheduleQuestionnaireReminders = async () => {
|
|
const isFastMode = process.env.DEBUG_QUESTIONNAIRE_REMINDER_FAST_MODE === 'true';
|
|
const pattern = isFastMode ? '*/15 * * * *' : '0 9 * * *';
|
|
|
|
const jobs = await questionnaireReminderQueue.getRepeatableJobs();
|
|
for (const job of jobs) {
|
|
await questionnaireReminderQueue.removeRepeatableByKey(job.key);
|
|
}
|
|
|
|
await questionnaireReminderQueue.add('checkQuestionnaireReminders', {}, {
|
|
repeat: { pattern },
|
|
jobId: 'questionnaire-pending-reminder-sweep'
|
|
});
|
|
|
|
console.log(
|
|
`[Questionnaire Reminder Queue] Scheduled: ${isFastMode ? 'every 15 min (FAST MODE)' : 'daily at 09:00'}`
|
|
);
|
|
};
|