31 lines
745 B
JavaScript
31 lines
745 B
JavaScript
import cron from 'node-cron';
|
|
import { cron_task_list } from '../config/cron_tasks.js';
|
|
import { execute_action_and_record } from './task_executor.js';
|
|
|
|
const cron_jobs = [];
|
|
|
|
export function start_all_cron_tasks() {
|
|
for (const task of cron_task_list) {
|
|
const job = cron.schedule(task.cron_expression, async () => {
|
|
try {
|
|
await execute_action_and_record({
|
|
action_name: task.action_name,
|
|
action_payload: task.action_payload || {},
|
|
source: 'cron'
|
|
});
|
|
} catch (err) {
|
|
// 失败会在 crawl_run_record 落库
|
|
}
|
|
});
|
|
|
|
cron_jobs.push(job);
|
|
}
|
|
}
|
|
|
|
export function stop_all_cron_tasks() {
|
|
for (const job of cron_jobs) {
|
|
job.stop();
|
|
}
|
|
cron_jobs.length = 0;
|
|
}
|