安装
npm install node-schedule
# 或
yarn add node-schedule
使用
使用 schedule.scheduleJob()
即可创建一个定时任务:
const schedule = require('node-schedule');
// 当前时间的秒值为 10 时执行任务,如:2024-02-26 11:24:10
let job = schedule.scheduleJob('10 * * * * *', () => {
console.log(new Date());
});
时间数值按下表表示:
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └ 星期几,取值:0 - 7,其中 0 和 7 都表示是周日
│ │ │ │ └─── 月份,取值:1 - 12
│ │ │ └────── 日期,取值:1 - 31
│ │ └───────── 时,取值:0 - 23
│ └──────────── 分,取值:0 - 59
└─────────────── 秒,取值:0 - 59(可选)
也可以指定具体的时间:
const schedule = require('node-schedule');
// 定义一个未来的时间
let date = new Date(2024, 2, 27, 11, 24, 0);
// 定义一个任务
let job = schedule.scheduleJob(date, () => {
console.log(new Date());
});
还可以隔一段时间执行一次:
const schedule = require('node-schedule');
// 定义规则
let rule = new schedule.RecurrenceRule();
rule.second = [0, 10, 20, 30, 40, 50]; // 每隔 10 秒执行一次
// 启动任务
let job = schedule.scheduleJob(rule, () => {
console.log(new Date());
});
rule
支持设置的值有 second
、minute
、hour
、date
、dayOfWeek
、month
、year
等
每秒执行
rule.second = [0,1,2,3......59];
每分钟 0 秒执行
rule.second = 0;
每小时 30 分执行
rule.minute = 30;
rule.second = 0;
每天 0 点执行
rule.hour =0;
rule.minute =0;
rule.second =0;
每月 1 号的 10 点执行
job.cancel();
每周一、周三、周五的 0 点和 12 点执行
job.cancel();
取消任务
job.cancel();