📜  node-schedule npm - Javascript (1)

📅  最后修改于: 2023-12-03 15:33:08.176000             🧑  作者: Mango

node-schedule npm - Javascript

简介

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 对象来定义时间规则。希望本文能够对大家有所帮助。