Quiet
  • 主页
  • 归档
  • 分类
  • 标签
  • 链接
  • 关于我

bajiu

  • 主页
  • 归档
  • 分类
  • 标签
  • 链接
  • 关于我
Quiet主题
  • NodeJs
  • JavaScript

NodeJs定时任务node-schedule模块的使用

bajiu
前端

2024-02-26 11:31:00

安装

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();
上一篇

使用 ActiViZ 实现vtkImageData的体积创建(一)

下一篇

Raspberry Pico W 上 ADC(数模转换器) 简介

©2024 By bajiu.