Nodejs 定时执行 node-cron

36 篇文章 3 订阅
27 篇文章 0 订阅

nodejs schedule库,定时执行某个任务。

cron - npm

GitHub - node-cron/node-cron: A simple cron-like job scheduler for Node.js

安装

npm install cron

示例

var CronJob = require('cron').CronJob;
new CronJob('* * * * * *', function() {
console.log('You will see this message every second');
}, null, true, 'America/Los_Angeles');

API

constructor(cronTime, onTick, onComplete, start, timezone, context, runOnInit, unrefTimeout)

参数说明: 

  • cronTime [必需] 配置定时任务的时间,可以使用这可以是cron语法或JS Date对象的形式。
  • onTick [必需]在指定时间触发的回调。
  • onComplete [可选] 在作业停止时将触发的回调。
  • Start [可选]指定是否在退出构造函数之前启动作业,默认情况下,此值设置为false。
  • timeZone [可选] -指定执行的时区。这将修改相对于您的时区的实际时间 ,不设置为当前所在时区。设置为Europe/London 为UTC 0时区

cronTime时间语法

crontab.org - CRONTAB(5)

此模块中中cron有一定的差异,时间取值范围,且有六个字段,其中1秒是最精细的粒度。

秒:0-59 分钟:0-59 小时:0-23 天:1-31 月份:0-11(1月至12月) 星期几:0-6(周日至周六)

排列顺序:

秒 分钟 小时 天 月份 星期几

 

 

1.*为通配符 -为时间段连接符 ,号为分隔符,可以在某一节输入多个值 /号为步进符

在指定时刻执行(定时) 从1中例子可以看到*为通配 ,意思均满足。

* * * * * *

意思为均通配,导致结果就是每秒都执行

2.每次分钟时间为10的时候执行:

10 * * * *

3.每次分钟为10的 那60秒 每秒都执行。

10 03 * * * *

4.在秒为10 分钟为3执行

10 05 14 * * *

5.每天14点05分10秒时执行

10 05 14-17 * * *

6.每天14-17点的05分10秒时执行语句。(-操作符支持选择时间端)

10 05 14-17 * * *

7.每分钟的11 秒 22秒 25秒执行。(支持分隔)

11,22,25 * * * * *

间隔多少时间执行(循环) 我们可以使用通配符和/步进符实现间隔多长时间执行

8.间隔3秒执行

*/3 * * * * *

9.间隔两分钟执行

0 */2 * * * *

10.在每分钟第10秒执行

var CronJob = require('cron').CronJob;
new CronJob('10 * * * * ', function() {
const d = new Date();
console.log(d);
}, null, true);

输出

2022-02-08T06:18:10.010Z

2022-02-08T06:19:10.004Z

11.间隔10秒执行一次

var CronJob = require('cron').CronJob;
new CronJob('/10 * * * * *',()=> {
const d = new Date();
console.log(d);
}, null, true);

输出

2022-02-08T06:19:30.008Z

2022-02-08T06:19:40.001Z

2022-02-08T06:19:50.001Z

美国时区

var cron = require('node-cron');

 cron.schedule('0 1 * * *', () => {
   console.log('Running a job at 01:00 at America/Sao_Paulo timezone');
 }, {
   scheduled: true,
   timezone: "America/Sao_Paulo"
 });

使用中国时区去掉timezone参数

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liyinchi1988

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值