什么是 node-cron?
node-cron 是一个轻量级的 Node.js 库,它允许您使用 cron 表达式的语法按计划执行 JavaScript 函数(任务)。它是 Unix 系统级任务调度器 cron 的对应物,但运行在您的应用程序内部。
为什么需要它?
这个库对于自动化服务器上的日常操作是必需的:清理数据库、发送邮件简报、创建备份、更新缓存、数据抓取以及任何其他周期性任务。这避免了编写自己的定时器和手动管理时间间隔的需要。
安装
通过 npm 或 yarn 进行安装:
npm install node-cron或者
yarn add node-cron主要功能
- 语法简单:使用标准的 cron 表达式(分钟、小时、天数等)
- 灵活性:支持秒、可选的时区、按工作日/周末执行
- 任务管理:
start()、stop()、destroy()方法用于控制执行 - 轻量级:无需外部依赖,库的大小极小
JavaScript (Node.js) 代码示例
const cron = require('node-cron');
// 任务:每分钟输出一条消息cron.schedule('* * * * *', () => { console.log('任务每分钟执行一次');});
// 任务:每天早上 9:30cron.schedule('30 9 * * *', () => { console.log('每天 9:30 的日常任务');});
// 任务:每个星期一早上 8:00cron.schedule('0 8 * * 1', () => { console.log('星期一,8:00 – 报告时间');});
// 带有秒的任务:每 10 秒cron.schedule('*/10 * * * * *', () => { console.log('过了 10 秒');});
// 5 秒后停止任务const task = cron.schedule('*/1 * * * * *', () => { console.log('无限任务');});setTimeout(() => { task.stop(); console.log('任务已停止');}, 5000);何时使用
当您需要在 Node.js 应用程序内按特定时间或固定间隔执行代码时,请使用 node-cron。它非常适合用于:
- 定期清理临时文件或日志;
- 按计划发送通知或电子邮件;
- 与外部 API 同步数据;
- 在后台生成报告;
- 运行服务器健康检查或测试。
该库不适合高负载的分布式系统(此时最好使用任务队列),但对于大多数典型场景,它是一个最佳的解决方案。