nodejs模块 node-schedule使用,定时任务
2017-11-20 17:21
711 查看
http://blog.csdn.net/zzwwjjdj1/article/details/51898257
首先引入2个模块和访问的方法:
[javascript]
view plain
copy
var http = require('http');
var schedule = require("node-schedule");
[javascript]
view plain
copy
function httpGet(){
var uri = `http://120.25.169.8/before/index`;
http.get(uri, function(res) {
console.log("访问个人微博状态码: " + res.statusCode);
}).on('error', function(e) {
console.log("个人微博 error: " + e.message);
});
}
[javascript]
view plain
copy
var date = new Date(2016,6,13,15,50,0);
schedule.scheduleJob(date, function(){
httpGet();
});
运行结果:
[javascript]
view plain
copy
var rule1 = new schedule.RecurrenceRule();
var times1 = [1,6,11,16,21,26,31,36,41,46,51,56];
rule1.second = times1;
schedule.scheduleJob(rule1, function(){
httpGet();
});
运行结果:
[javascript]
view plain
copy
var rule2 = new schedule.RecurrenceRule();
var times2 = [1,6,11,16,21,26,31,36,41,46,51,56];
rule2.minute = times2;
schedule.scheduleJob(rule2, function(){
httpGet();
});
运行结果:
有500
请忽略,不小心把数据库关掉了.
[javascript]
view plain
copy
var rule3 = new schedule.RecurrenceRule();
var times3 = [1,5,9,13,17,21];
rule3.hour = times3;
schedule.scheduleJob(rule3, function(){
httpGet();
});
以小时的就不贴运行结果了.时间太久
[javascript]
view plain
copy
schedule.scheduleJob('5 * * * * *', function(){
httpGet();
});
这个代码的意思就是每分钟的5秒这个点执行
比较坑的就是如果项目中有定时任务的时候,开启多线程模式就会执行多次,不管是这个模块还是使用 setInterval,有能解决的大神请留言.
更多详情:https://www.npmjs.com/package/node-schedule
https://www.cnblogs.com/ajun/p/3548259.html 使用方法
1:确定时间
例如:2014年2月14日,15:40执行
var schedule = require("node-schedule");
var date = new Date(2014,2,14,15,40,0);
var j = schedule.scheduleJob(date, function(){
console.log("执行任务");
});
取消任务
j.cancel();
2:每小时的固定时间
例如:每小时的40分钟执行
var rule = new schedule.RecurrenceRule();
rule.minute = 40;
var j = schedule.scheduleJob(rule, function(){
console.log("执行任务");
});
3:一个星期中的某些天的某个时刻执行,
例如:周一到周日的20点执行
var rule = new schedule.RecurrenceRule();
rule.dayOfWeek = [0, new schedule.Range(1, 6)];
rule.hour = 20;
rule.minute = 0;
var j = schedule.scheduleJob(rule, function(){
console.log("执行任务");
});
4:每秒执行
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);
});
一. 安装
npm install node-schedule二. 使用
例子通过定时访问url展示首先引入2个模块和访问的方法:
[javascript]
view plain
copy
var http = require('http');
var schedule = require("node-schedule");
[javascript]
view plain
copy
function httpGet(){
var uri = `http://120.25.169.8/before/index`;
http.get(uri, function(res) {
console.log("访问个人微博状态码: " + res.statusCode);
}).on('error', function(e) {
console.log("个人微博 error: " + e.message);
});
}
1. 确定的时间执行
比如: 2016年7月13日15:50:00 , new Date() 的时候月份要减1.[javascript]
view plain
copy
var date = new Date(2016,6,13,15,50,0);
schedule.scheduleJob(date, function(){
httpGet();
});
运行结果:
2. 秒为单位执行
比如:每5秒执行一次[javascript]
view plain
copy
var rule1 = new schedule.RecurrenceRule();
var times1 = [1,6,11,16,21,26,31,36,41,46,51,56];
rule1.second = times1;
schedule.scheduleJob(rule1, function(){
httpGet();
});
运行结果:
3.以分为单位执行
比如:每5分种执行一次[javascript]
view plain
copy
var rule2 = new schedule.RecurrenceRule();
var times2 = [1,6,11,16,21,26,31,36,41,46,51,56];
rule2.minute = times2;
schedule.scheduleJob(rule2, function(){
httpGet();
});
运行结果:
请忽略,不小心把数据库关掉了.
4.以小时为单位执行
比如:每4小时执行一次[javascript]
view plain
copy
var rule3 = new schedule.RecurrenceRule();
var times3 = [1,5,9,13,17,21];
rule3.hour = times3;
schedule.scheduleJob(rule3, function(){
httpGet();
});
以小时的就不贴运行结果了.时间太久
5.Cron风格
[javascript]
view plain
copy
schedule.scheduleJob('5 * * * * *', function(){
httpGet();
});
这个代码的意思就是每分钟的5秒这个点执行
比较坑的就是如果项目中有定时任务的时候,开启多线程模式就会执行多次,不管是这个模块还是使用 setInterval,有能解决的大神请留言.
更多详情:https://www.npmjs.com/package/node-schedule
https://www.cnblogs.com/ajun/p/3548259.html 使用方法
1:确定时间
例如:2014年2月14日,15:40执行
var schedule = require("node-schedule");
var date = new Date(2014,2,14,15,40,0);
var j = schedule.scheduleJob(date, function(){
console.log("执行任务");
});
取消任务
j.cancel();
2:每小时的固定时间
例如:每小时的40分钟执行
var rule = new schedule.RecurrenceRule();
rule.minute = 40;
var j = schedule.scheduleJob(rule, function(){
console.log("执行任务");
});
3:一个星期中的某些天的某个时刻执行,
例如:周一到周日的20点执行
var rule = new schedule.RecurrenceRule();
rule.dayOfWeek = [0, new schedule.Range(1, 6)];
rule.hour = 20;
rule.minute = 0;
var j = schedule.scheduleJob(rule, function(){
console.log("执行任务");
});
4:每秒执行
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);
});
相关文章推荐
- nodejs模块 node-schedule使用,定时任务
- nodejs模块 node-schedule使用,定时任务
- node.js定时任务:node-schedule的使用
- node.js定时任务:node-schedule的使用
- nodejs模块 node-schedule 使用
- node.js定时任务:node-schedule的使用
- 定时任务 模块 node-schedule
- node.js定时任务:node-schedule的使用【转】
- node-schedule 实现定时任务使用方法记录
- node.js中使用node-schedule实现定时任务实例
- node.js定时任务:node-schedule的使用
- node.js中使用node-schedule实现定时任务实例
- node.js中使用node-schedule实现定时任务
- node.js定时任务:node-schedule的使用
- Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- (转)Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- nodejs编译sass模块包 node-compass,与gulp包gulp-sass使用方法
- nodejs 调度 node-schedule 使用
- node.js定时任务 node-schedule
- spring定时任务schedule的两种使用方法