npm install node-schedule
cnpm install node-schedule
规定在一天、一个星期、一个月,某一个特定的时间进行重复性的操作,加下来的每一天、每一个星期、每一个月都会进行一样的操作,在特定的时间。如果是在小范围时间内 例如 3 秒钟,每 3 秒钟进行一次重复的事情,就可以用setInterval();
'* * * * * *' 分别代表了 秒 分 时 日 月 每个星期的第几天
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ │
│ │ │ │ │ └ 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!');
});
这个函数,是一个构造函数,生成一个规则,变量 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 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 秒 / 分 / … 执行一次。