const env = require('../config/env'); const { syncDueReminderOccurrencesForAll } = require('../services/reminders.service'); let intervalHandle = null; let isRunning = false; async function runOnce() { if (isRunning) { return; } isRunning = true; try { const synced = await syncDueReminderOccurrencesForAll({ limit: 120 }); if (synced.length > 0) { console.log(`[push-worker] Synced due reminder occurrences: ${synced.length}`); } } catch (error) { console.error('[push-worker] Failed to sync due reminders.'); console.error(error); } finally { isRunning = false; } } function startReminderPushWorker() { if (intervalHandle || !env.pushReminderWorkerEnabled) { return; } const intervalMs = Math.max(env.pushReminderWorkerIntervalSeconds, 15) * 1000; setTimeout(() => { runOnce(); }, 2000); intervalHandle = setInterval(() => { runOnce(); }, intervalMs); console.log(`[push-worker] Reminder push worker started (${Math.floor(intervalMs / 1000)}s interval).`); } module.exports = { startReminderPushWorker, };