代码改变世界

node.js中使用node-schedule实现定时任务

2015-12-12 22:12  牛仔裤的夏天  阅读(883)  评论(0编辑  收藏  举报
摘要:有时我们需要在每天的固定时间执行某个脚本,或者在某个固定时间执行某个任务。NodeJS中的 node-schedule 可以很好的实现定时任务。

1.安装

 npm install node-schedule

2.各种时间段代码实现

  1)确定时间,例如:2012年11月21日,5:30  
var schedule = require('node-schedule');
var date = new Date(2012, 11, 21, 5, 30, 0);
var j = schedule.scheduleJob(date, function(){
    console.log('The world is going to end today.');
}); 

2)每小时的固定分钟,例如:每个小时的42分钟

var schedule = require('node-schedule');
var rule = new schedule.RecurrenceRule();
rule.minute = 42;
var j = schedule.scheduleJob(rule, function(){
    console.log('The answer to life, the universe, and everything!');
});

3)一个星期中的某些天的某个时刻,例如:每周四,周五,周六,周天的17点


var schedule = require('node-schedule');
var rule = new schedule.RecurrenceRule();
rule.dayOfWeek = [0, new schedule.Range(4, 6)];
rule.hour = 17;
rule.minute = 0;
var j = schedule.scheduleJob(rule, function(){
console.log('Today is recognized by Rebecca Black!');
});

4)每秒执行

var schedule = require('node-schedule');
var rule = new schedule.RecurrenceRule();
var times = [];
for(var i=1; i<60; i++){
    times.push(i);
}
rule.second = times;
var c=0;
var j = schedule.scheduleJob(rule, function(){
    c++;
    console.log(c);
});