import cron from 'node-cron'; const task_id_to_cron_job = new Map(); export function stop_all_cron_jobs() { for (const job of task_id_to_cron_job.values()) { job.stop(); } task_id_to_cron_job.clear(); } export function upsert_cron_job(schedule_task_id, cron_expression, on_tick) { const existing = task_id_to_cron_job.get(schedule_task_id); if (existing) { existing.stop(); task_id_to_cron_job.delete(schedule_task_id); } const job = cron.schedule(cron_expression, on_tick, { scheduled: true }); task_id_to_cron_job.set(schedule_task_id, job); } export function remove_cron_job(schedule_task_id) { const job = task_id_to_cron_job.get(schedule_task_id); if (!job) { return; } job.stop(); task_id_to_cron_job.delete(schedule_task_id); }