定时任务
安装
sh
npm install node-schedulenode-schedule 默认使用服务器本地时间。
警告
node-schedule 对 Cron 表达式的支持较为基础,某些特殊字符(如 L、W、#)并不支持。此外,node-schedule 并不具备内置的持久化功能。对于需要更复杂调度逻辑和持久化功能的定时任务,还是推荐使用 Quartz。
corn表达式
传统的corn表达式有5位,第一位表示分钟
在node-schedule可以使用6位,第一位表示秒。
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ │
│ │ │ │ │ └── 星期(0 - 6,0表示星期日)
│ │ │ │ └───── 月份(1 - 12)
│ │ │ └────────── 日(1 - 31)
│ │ └─────────────── 小时(0 - 23)
│ └──────────────────── 分钟(0 - 59)
└───────────────────────── 秒(0 - 59)ts
* * * * * * //每秒
0 * * * * * //每分钟
0 0 12 * * * //每天12:00:00
0 30 8 * * 1 //每周一的 08:30:00
0 0 10 1 * * //每月 1日 10:00:00*:表示“任何值”都是允许的
js
* * * * * * //每秒,:用来指定多个值,多个值之间用逗号隔开,
js
0 12 * * 1,5 //每周的星期一和星期五的 12:00:00 执行任务。-:指定一个范围
js
0 9-17 * * * * //每小时的第9~17分钟的每分钟的第0s执行任务/:用于指定步长,
js
0 0 12/2 * * * //每天 从 12 点开始,每隔 2 小时 触发一次
0 0 */2 * * * //每天 从 0 点开始,每隔 2 小时 触发一次使用
使用 Date 对象调度任务
js
const schedule = require('node-schedule');
// 创建一个在指定时间执行的任务
const job = schedule.scheduleJob(new Date(2026, 1, 28, 14, 0, 0), function(){
console.log('任务在 2026-02-28 14:00 执行');
});使用 Cron 表达式调度任务
js
const schedule = require('node-schedule');
// 每天中午 12:00 执行
const job = schedule.scheduleJob('0 12 * * *', function(){
console.log('每天中午 12:00 执行任务');
});