Files
mv2_simple_crx/server/services/cron_manager.js
张成 5b671d320b 1
2026-03-18 14:18:41 +08:00

31 lines
782 B
JavaScript

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);
}