node-cron:JavaScript 任务调度器

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 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 同步数据;
  • 在后台生成报告;
  • 运行服务器健康检查或测试。

该库不适合高负载的分布式系统(此时最好使用任务队列),但对于大多数典型场景,它是一个最佳的解决方案。

推荐