当前位置: 首页 > 工具软件 > node-schedule > 使用案例 >

Node 之 node-schedule 定时器

钱浩荡
2023-12-01

## node-schedule

- 安装

npm install node-schedule

cnpm install node-schedule

 

- 使用范围

规定在一天、一个星期、一个月,某一个特定的时间进行重复性的操作,加下来的每一天、每一个星期、每一个月都会进行一样的操作,在特定的时间。如果是在小范围时间内 例如 3 秒钟,每 3 秒钟进行一次重复的事情,就可以用setInterval();

 

- scheduleJob('* * * * * *', function(){})

'* * * * * *' 分别代表了 秒 分 时 日 月 每个星期的第几天

*  *   *  *  *  *

┬ ┬ ┬ ┬ ┬ ┬

│ │ │ │ │ │

│ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)

│ │ │ │ └───── month (1 - 12)

│ │ │ └────────── day of month (1 - 31)

│ │ └─────────────── hour (0 - 23)

│ └──────────────────── minute (0 - 59)

└───────────────────────── second (0 - 59, OPTIONAL)

function 就代表这你使用的函数

/**
 * 每分钟的 59 秒的时间 执行一次
 */
var jobs = Schedule.scheduleJob('59 * * * * *', function(){
    console.log('The answer to life, the universe, and everything!');
});

- RecurrentceRule()

这个函数,是一个构造函数,生成一个规则,变量 rule ,变量当中有对于的 秒 分 时 日 月 每个星期的第几天的参数,可以进行设置。

var rule = new Schedule.RecurrenceRule();

rule.second = 1;

var x = Schedule.scheduleJob(rule, function() {
    console.log('this is RecurrenceRule test');
});

其中还有个 new schedule.Range() 表示一个范围性的值。

new schedule.Range() // 可以表示一个范围

- startTime, endTime

再某条规则下,在一定的时间段内执行相应的代码。

/**
 * startTime and endTime
 */

 let startTime = new Date(Date.now() + 5000);
 let endTime = new Date(startTime.getTime() + 5000);
 var z = Schedule.scheduleJob({
    start: startTime,
    end: endTime,
    rule: '*/1 * * * * *' // 表示每秒都执行 通过 */1表示
 }, function() {
     console.log('Time for tea!');
 })

总结

大家可以通过这个方法和爬虫相结合,定时的去爬取一些数据,将自己的数据逐步的扩展,这里再补充一点,可以通过*/n 的方式来写每 n 秒 / 分 / … 执行一次。

 类似资料: