📅  最后修改于: 2023-12-03 15:33:08.176000             🧑  作者: Mango
node-schedule
是一个 Node.js 的定时任务调度库,基于 cron 语法实现,可以用来执行一些周期性的任务。
可以使用 npm 来安装 node-schedule
:
npm install node-schedule
首先,需要从 node-schedule
中引入 scheduleJob
方法,该方法接收两个参数,分别是执行的时间规则和执行的任务函数。
const { scheduleJob } = require('node-schedule');
scheduleJob('0 0 * * * *', function() {
console.log('每小时的第 0 分钟执行');
});
上面的代码中,我们使用了 cron 语法的一部分,表示定时任务每小时的第 0 分钟执行。
除了这种方式,还可以使用 RecurrenceRule
对象来定义时间规则,它可以非常灵活地设置任务的执行时间。
const { scheduleJob, RecurrenceRule } = require('node-schedule');
const rule = new RecurrenceRule();
rule.dayOfWeek = [0, new schedule.Range(4, 6)];
rule.hour = 17;
rule.minute = 30;
scheduleJob(rule, function() {
console.log('每周日和周四到周六的 17:30 执行');
});
上面的代码中,我们使用了 RecurrenceRule
对象来定义时间规则,表示定时任务每周日和周四到周六的 17:30 执行。
下面是一个完整的示例:
const { scheduleJob, RecurrenceRule } = require('node-schedule');
// 定时任务1,每小时的第0分钟执行
const job1 = scheduleJob('0 0 * * * *', function() {
console.log('每小时的第 0 分钟执行');
});
// 定时任务2,每周日和周四到周六的 17:30 执行
const rule = new RecurrenceRule();
rule.dayOfWeek = [0, new schedule.Range(4, 6)];
rule.hour = 17;
rule.minute = 30;
const job2 = scheduleJob(rule, function() {
console.log('每周日和周四到周六的 17:30 执行');
});
// 取消定时任务1
job1.cancel();
node-schedule
是一个非常方便的 Node.js 库,可以轻松地实现定时任务调度的功能,并且支持 cron 语法和 RecurrenceRule
对象来定义时间规则。希望本文能够对大家有所帮助。