crontab node

发布时间:2019-06-23 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了crontab node脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

crontab-node

说明

给大家推荐一个定时器,先上gIT地址

https://github.com/luoage/cro...

定时方式只支持linux crontab写法,如果一个进程一直存在,可以使用 cron-parser,这里只讨论配合linux crontab一起使用的情况,目的是解决多个文件放在crontab的情况,简化定时任务

使用方法

首先把定时器放入crontab每分钟执行一次

crontab -l

* * * * * node path/c.js

使用方法1

c.js

const crontab = require('crontab-node');

// 每两分钟执行一次
crontab('*/2 * * * *') && console.LOG('hit success !');

crontab是一个同步方法,提供三个参数

/**
 * 定时器
 *
 * @param {string} exPression 定时器表达式
 * @param {mixed} [date] 使用Moment接收的时间格式
 * @param {function|promise} [cb] 同步方法,或者PRomise对象
 *
 * @return boolean
 */

第二个参数,目的是止同步执行时时间过长,接收自定义时间

使用方法2

使用node做定时器的,最重要的是如何在执行完成后关闭进程,所以这里增加了一个监听方法,上代码

const crontab = require('crontab-node');
const eventEmitter = require('crontab-node/eventEmitter');

eventEmitter.on('crontab-node exit', () => {
    process.exit(0);
});
const promise = new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve();
    }, 1);
});

setInterval(() => {
  console.log(new Date());

  crontab('*/2 * * * *', undefined, () => {
    return promise.then(() => {
      console.log('I am callback, just excute once');
    });
  });
}, 1000);

所有方法执行完成后抛出 "crontab-node exit" 事件, 监听后可以把进程关闭掉。PHP的小伙伴如果使用laravel框架,它内部定时器也是这种方式。

效果

crontab node

脚本宝典总结

以上是脚本宝典为你收集整理的crontab node全部内容,希望文章能够帮你解决crontab node所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。