nodejs中node-schedule调度的简单使用
来源:互联网 发布:js实现链表数据结构 编辑:程序博客网 时间:2024/05/21 10:29
由于最近在nodejs项目上遇到了关于时间调度的问题,原本打算用setTimeout和setInterval来实现的,可是在进一步考虑了一下,发现这种方式是不能满足的,后面查了一下,发现nodejs中已经有大牛写了一个开源的node-schedule包用来解决关于调度问题的,这里我只是简单的弄一个例子来实现调度,在我做的模块中主要是想在特定的时间去执行一个我定义好的方法,这里我用俩种方法来实现这个功能的,一种是用javascript自带的setInterval()方法和node-schedule包中的调度来实现,请各位看官发现不对的地方指出来,改之
- setInterval方法实现
首先定义一个需要执行的方法,如下
function execute(params){ console.log((new Date).getTimes()); //这里写该方法执行的逻辑,我这里只是打印一下执行的时间}
下面是关于setInterval来实现调度的逻辑部分,这里的方法不是一个完整的方法,这里我只写了关于setInterval的部分
var excuteDate;//这个是定义执行该方法的时间,看自己喜欢哪一种方式,如字符串2017-03-20;或者cron表达式等,,,,var excuteId = setInterval(function(){ var date = new Date(); //这里做一个判断 if(date==excuteDatee){//这里是一个伪判断,实际情况看自己的需求来判断 //这里执行该方法 execute(params);//params为定义好的一个参数 //如果你定义的一个时间只是该方法只执行一次的话,在这里最好关闭该定时器 //clearInterval(excuteId); }},100);
在上面就是关于setInterval()方法来实现调度的,主要实现逻辑是利用定时器来一直跑起来,判断其中的一个时间点是否满足执行该方法的时间。注意的是这里我设置的是100毫秒,看自己需求来,看自己需要设计多少时间来执行一次这个判断逻辑。
- node-schedule方式实现
在用node-schedule方法实现之前了,首先我们要引用该包,默认这里已经把该包引到了项目中了(在package.json中添加好了,并且运行了该json文件),这里的方法还是用上面定义的execute方法,部分代码如下
var schedule = require("node-schedule");var cronStr = "59 23 20 3 2017 *";//cron表达式,这个表示在2017年3月20 日23点59分var scheduId = 1;//方便后面取消调度的时候用schedule.scheduleJob(scheduId,cronStr,execute(param));
是不是觉得node-schedule包比setInterval()方法简单多了,上面这个只是开启调度,如果该调度不要了,想要暂停的话可以用下面的代码来暂停
if(schedule.scheduledJobs[scheduId ]){//这里下次继续写 schedule.cancelJob(scheduId);//这里如果想判断一下是否关闭成功的话,该方法会返回一个boolean类型的值(true:成功;否则反之)}
上面提到的cron表达式是用来告诉schedule什么时候来调度该方法,如果想要详细了解cron表达式的话请点击https://www.npmjs.com/package/cron;
上面就是关于node-schedule调度的模式,如果看官们觉得想要进一步了解的话,请进入https://github.com/node-schedule/node-schedule
- nodejs中node-schedule调度的简单使用
- nodejs 调度 node-schedule 使用
- nodejs模块 node-schedule 使用
- nodejs模块 node-schedule使用,定时任务
- nodejs模块 node-schedule使用,定时任务
- node-schedule的使用
- [NodeJS]使用Node.js写一个简单的在线聊天室
- node schedule 使用
- node.js定时任务:node-schedule的使用
- node.js定时任务:node-schedule的使用
- node.js定时任务:node-schedule的使用
- node.js定时任务:node-schedule的使用【转】
- node.js定时任务:node-schedule的使用
- nodejs小记之简单的node服务器
- Jboss7中ejb3使用@Schedule调度器总是每分钟执行
- Node.js中async的简单使用
- node.js中mysql的简单使用
- node-easymock, 在nodejs中,一个简单但强大的模拟服务器
- cocos2d-js中关于继承的细节
- Handler机制详解
- cookie 简单案例
- Activity中的四种启动模式
- 使用 VisualVM 进行性能分析及调优
- nodejs中node-schedule调度的简单使用
- C++泛型链表
- 【算法】计算机图形学的一些经典小题:判断点在多边形内,随机生成三角形内的点,判断两个矩形是否相交等
- python argparse
- MAMP中设置Mysql root密码
- Mininet Documents In Chinese
- php使用fputcsv()函数csv文件读写数据的方法(解决中文乱码问题)
- NSIS 注释打包
- 如何理解数学公式之要点一二