node-schedule 实现定时任务使用方法记录
在项目中有个每天0点执行的函数,本来想用setInterval来实现,但觉得这种需求以后应该还会有,自己写可能拓展性不高。
搜了一下发现了node-schedule这个包。
现在记录一下使用方法
node-schedule每次都是通过新建一个scheduleJob对象来执行具体方法。
时间数值按下表表示
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └ [dayOfWeek]day of week (0 - 7) (0 or 7 is Sun)
│ │ │ │ └─── [month]month (1 - 12)
│ │ │ └────── [date]day of month (1 - 31)
│ │ └───────── [hour]hour (0 - 23)
│ └──────────── [minute]minute (0 - 59)
└─────────────── [second]second (0 - 59, OPTIONAL)
指定时间有两种方式
1 字符串指定
*之间一定要加空格,否则不执行
每到秒数为4的倍数时执行
在秒位*后加/4 和后面的*之间要有空格
schedule.scheduleJob('*/4 * * * * *',function (){
dosomething
});
每到秒数为4时执行
在秒位*后加4 ,和后面的*之间要有空格
schedule.scheduleJob('*4 * * * * *',function (){
dosomething
});
'4 * * * *'每到分钟数为4时执行
'*/4 * * * *'每到分钟数为4的倍数时执行
2 时间对象指定
使用node-schedule在指定时间执行方法
var schedule = require('node-schedule');
var date = new Date(2015, 11, 16, 16, 43, 0);
var j = schedule.scheduleJob(date, function(){
console.log('现在时间:',new Date());
});
在2015年12月16日16点43分0秒,打印当时时间
指定时间间隔执行方法
var rule = new schedule.RecurrenceRule();
rule.second = 10;
var j = schedule.scheduleJob(rule, function(){
console.log('现在时间:',new Date());
});
这是每当秒数为10时打印时间。如果想每隔10秒执行,设置 rule.second =[0,10,20,30,40,50]即可。
rule支持设置的值有second,minute,hour,date,dayOfWeek,month,year
同理:
每秒执行就是rule.second =[0,1,2,3......59]
每分钟0秒执行就是rule.second =0
每小时30分执行就是rule.minute =30;rule.second =0;
每天0点执行就是rule.hour =0;rule.minute =0;rule.second =0;
....
每月1号的10点就是rule.date =1;rule.hour =10;rule.minute =0;rule.second =0;
每周1,3,5的0点和12点就是rule.dayOfWeek =[1,3,5];rule.hour =[0,12];rule.minute =0;rule.second =0;
....
node-schedule 实现定时任务使用方法记录的更多相关文章
- (转)Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
http://blog.csdn.net/zixiao217/article/details/53044890 读完第一节,我们已经对Quartz有了一个大体的认识,它可以定时帮我们执行一些处理程序, ...
- Spring Schedule 实现定时任务
很多时候我们都需要为系统建立一个定时任务来帮我们做一些事情,SpringBoot 已经帮我们实现好了一个,我们只需要直接使用即可,当然你也可以不用 SpringBoot 自带的定时任务,整合 Quar ...
- Python schedule 库定时任务
Python schedule 库定时任务 schedule的使用 # 用于scrapy定时任务设置 import schedule import time def job(): print(&quo ...
- EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态
本文目录 查看实体当前.原始和数据库值:DbEntityEntry 查看实体的某个属性值:GetValue<TValue>方法 拷贝DbPropertyValues到实体:ToObject ...
- 64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录
64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录 经过几天不停的网上找资料,实验,终于联通了. 环境:系统:win 2008 ,SqlServer2008 R2, 连接O ...
- js实用方法记录-js动态加载css、js脚本文件
js实用方法记录-动态加载css/js 附送一个加载iframe,h5打开app代码 1. 动态加载js文件到head标签并执行回调 方法调用:dynamicLoadJs('http://www.yi ...
- js实用方法记录-简单cookie操作
js实用方法记录-简单cookie操作 设置cookie:setCookie(名称,值,保存时间,保存域); 获取cookie:setCookie(名称); 移除cookie:setCookie(名称 ...
- js实用方法记录-指不定哪天就会用到的js方法
js实用方法记录-指不定哪天就会用到的js方法 常用或者不常用都有 判断是否在微信浏览器中 测试代码:isWeiXin()==false /** * 是否在微信中 */ function isWeix ...
- 使用express创建node服务器的两种方法及区别
使用express创建node服务器有两种方法,如下所示: 方法一: var express = require('express'); var app = express(); app.listen ...
随机推荐
- 远程数据库备份到本地出现“Access denied for user 'root'@localhost(using password: YES)”的问题
由于另外一个人在用远程的server做测试,导致我访问这个远程机器的mysql提示“too many connections”的问题,于是想到干脆把数据库当下来做测试好了,结果用heidiSQLs进行 ...
- DEDECMS教程:首页实现分页的两种方法
有两种办法可以实现: 一.用arclist标签+Ajax实现织梦首页分页 二.交叉栏目ID 实现织梦首页分页 一.用arclist标签+Ajax实现织梦首页分页 1.必须在首页<head> ...
- 对于jsp中编码的理解
1.会话都是从客户端也就是浏览器开始发起的,首先用户将地址输入到地址栏中, 当用户输入enter或者点击转到的按钮时,浏览器会根据当前页面的charset对地址栏中的地址进行encode一次,当服务器 ...
- import 和 import {} 的区别
http://es6.ruanyifeng.com/#docs/module#export
- jQuery中animate()的方法以及$("body").animate({"scrollTop":top})不被Firefox支持问题的解决
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/50846678 本文出自[我是干勾鱼的博客] jQuery中animate()的方 ...
- Android-Gallery GridView ImageSwitcher 使用
http://liangruijun.blog.51cto.com/3061169/647355/ http://blog.csdn.net/wantianwen/article/details/23 ...
- PHP-004
'URL_CASE_INSENSITIVE' => true,设置为true的时候表示URL地址不区分大小写,这个也是框架在部署模式下面的默认设置. URL模式 : URL_MODEL设置 ...
- eclipse中debug模式不能启动运行,run运行模式却能启动运行!
这个问题我郁闷了好久!问题原因:因为断点太多了,断点冲突了. 解决办法:只要进如deug界面,选择BreakPoints选项,然后清除所有断点,再重新debug启动.问题解决! 希望能帮到遇到此问题的 ...
- Python 流程控制:for
for 循环用于对一个序列进行遍历,用法如下: In [4]: for i in 'abcd': ...: print(i) ...: a b c d In [13]: for i in range( ...
- 解决Xcode "The selected destination does not support the architecture " 错误错误
XCODE编译运行项目后,发现工程编译后无法运行,出现:"The selected destination does not support the architecture for whi ...