node-schedule定时器(一)Cron方式实现

一、node-schedule简介

npm官方网址: https://www.npmjs.com/package/node-schedule
node-schedule可以用来在nodejs中实现定时器,虽然我们可以通过setTimeInterval实现,但是使用node-schedule可以更加方便的实现在具体的时间点来进行相应的操作
安装:
npm install node-schedule --save 或者 yarn add node-schedule

二、Cron方式用法

1.基本使用:

(1)代码实现

const schedule = require('node-schedule');
function scheduleCronStyle(){ // 每分钟的第30秒触发
  schedule.scheduleJob('30 * * * * *', function(){
    console.log('scheduleCronStyle:' + new Date());
  });
}
scheduleCronStyle();

在这里插入图片描述

参数详解:

schedule.scheduleJob('* * * * * *', function(){
  });

(2)参数详解

一共6个*分别代表:
second (0 - 59, OPTIONAL)
minute (0 - 59)
hour (0 - 23)
day of month (1 - 31)
month (1 - 12)
day of week (0 - 7) (0 or 7 is Sun)

例如:
每分钟的第30秒触发: 30 * * * * *
每小时的1分30秒触发 :30 1 * * * *
每天的凌晨1点1分30秒触发 :30 1 1 * * *
每月的1日1点1分30秒触发 :30 1 1 1 * *
每年的1月1日1点1分30秒触发 :30 1 1 1 1 *
每周1的1点1分30秒触发 :30 1 1 * * 1

2.事件范围

(1)代码写法

function scheduleCronStyleRange(){ // 每分钟的1-10秒进行调用
  schedule.scheduleJob('1-10 * * * * *', function(){
    console.log('scheduleCronStyleRange:' + new Date());
  });
}
scheduleCronStyleRange();

在这里插入图片描述

(2)参数详解

使用‘-’连接的数字代表范围,其他参数同理

3.多个时间点

(1)代码写法

// 每分钟的 0,10,20,30,40,50秒都会执行一次
function scheduleCronStyleInterval(){
  schedule.scheduleJob('0,10,20,30,40,50 * * * * *', function(){
    console.log('scheduleCronStyleInterval:' + new Date());
  });
}
scheduleCronStyleInterval();

在这里插入图片描述

(2)参数详解

使用,连接数字可以设置多个时间点执行函数,其他参数同理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 `node-schedule` 模块可以很方便地测试一个时间是否满足 cron 表达式。 首先需要安装 `node-schedule` 模块,可以使用以下命令进行安装: ``` npm install node-schedule ``` 接下来,可以使用 `schedule.cronJob()` 方法创建一个 cron 任务,并设置它的 cron 表达式。然后,可以使用 `job.nextInvocation()` 方法获取下一次任务执行的时间,或者使用 `job.pendingInvocations()` 方法获取未来若干个执行时间。 以下是一个示例代码: ```javascript const schedule = require('node-schedule'); // 创建一个 cron 任务 const job = schedule.cronJob('0 0 * * * *', function() { console.log('执行任务'); }); // 获取下一次任务执行的时间 console.log(job.nextInvocation().toString()); // 判断一个时间是否满足 cron 表达式 const date = new Date('2022-01-01T00:00:00Z'); // 设置一个时间 if (job.schedule(date)) { console.log(`${date} 满足 cron 表达式`); } else { console.log(`${date} 不满足 cron 表达式`); } ``` 在上面的示例中,创建了一个 cron 任务,它的 cron 表达式为每秒执行一次。然后使用 `nextInvocation()` 方法获取了下一次任务执行的时间,并输出了结果。接下来,设置了一个时间,并使用 `schedule()` 方法判断它是否满足 cron 表达式,最后输出了结果。 注意,`schedule()` 方法会返回一个布尔值,表示给定的时间是否满足 cron 表达式。如果返回 `true`,则表示满足;如果返回 `false`,则表示不满足。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值