后台任务
后台任务功能允许你使用 Node 的 child_process 在独立派生进程中调度周期性作业。这确保了后台任务与主应用隔离,从而提高可靠性和性能。每个任务都在自己的文件中定义,并通过 cron 表达式触发,为后台自动化提供了一种干净、模块化的方式。
使用方法
1. 创建任务文件
编写一个文件,导出一个任务函数。该函数将包含你希望在计划时间内运行的逻辑。
js
// ./tasks/my-task.js
exports.task = () => {
return '来自后台任务的问候!';
};或使用 ESM
js
// ./tasks/my-task.js
export function task() => {
return '来自后台任务的问候!';
};2. 调度任务
使用任务文件路径来注册并启动任务。
js
import cron from 'node-cron';
cron.schedule('*/5 * * * * *', './tasks/my-task.js');内部工作原理
创建后台任务时,系统会 fork 一个新进程并启动一个 daemon,该守护进程通过加载任务并像常规 cron 调度器一样对其进行调度来处理任务调度,从而确保 cron 作业在隔离环境中运行。
父进程与子进程通过事件(如 task-started、task-done 等)进行通信,以跟踪任务的状态和执行情况。
系统实现了与基本调度任务相同的接口,提供 start()、stop() 和 destroy() 等实用函数,便于对任务的生命周期进行管理。