zoukankan      html  css  js  c++  java
  • nodeJs实现定时任务 node-schedule

    最近在思考怎么做定时任务,用setInterval实现的话,个人感觉,不利于日后代码维护和功能拓展。

    然后在网上搜了一圈,搜到了node-schedule,初期看不懂,但自从看了下面这个网址后,变豁然开朗了。

    参考网站:https://www.jb51.net/article/129748.htm

    github网址:https://github.com/node-schedule/node-schedule

    在我看来,node-schedule只有三个方法,这三个方法够我们用了

    1、指定时间执行方法(简单粗暴)

    /*
    * 指定时间执行方法
    *
    * 在2018年9月26日16点0分0秒,打印
    *
    * 月份是要减一的,程序里的1月份是0
    * */
    var date = new Date(2018, 8, 26, 19, 2, 0);
    var j = schedule.scheduleJob(date, function(){
        console.log(`我在${new Date()}的时候,执行了定时任务`);
    });
    /*
    * 取消任务
    * */
    // j.cancel();
    View Code

    2、指定时间间隔执行方法(基本都是这种玩法)

    /*
    * 指定时间间隔执行方法
    *
    * 这是每当秒数为10时打印时间。
    *
    * 如果想每隔10秒执行,设置 rule.second =[0,10,20,30,40,50]即可。
    *
    * 同理:
    *    每秒执行就是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;
    * */
    
    /*
    * 这是每当秒数为10时打印时间。
    *
    * 每分钟的10秒钟执行
    * */
    var rule = new schedule.RecurrenceRule();
    rule.second = 10;
    var j2 = schedule.scheduleJob(rule, function(){
        console.log('每分钟执行---现在时间:',new Date());
    });
    /*
    * 取消任务
    * */
    // j2.cancel();
    
    
    
    /*
    * 这是每秒打印
    *
    * 每秒钟执行
    * */
    var rule = new schedule.RecurrenceRule();
    rule.second = [];
    let i = 0, length = 60;
    for(i; i<length; i++){
        rule.second.push(i);
    }
    var j3 = schedule.scheduleJob(rule, function(){
        console.log('每秒钟执行---现在时间:',new Date());
    });
    /*
    * 取消任务
    * */
    // j3.cancel();
    
    /*
    * 这是每秒打印
    *
    * 每天0点执行
    * */
    var rule = new schedule.RecurrenceRule();
    rule.hour = 0;
    rule.minute = 0;
    var j4 = schedule.scheduleJob(rule, function(){
        console.log('每晚0点---现在时间:',new Date());
    });
    /*
    * 取消任务
    * */
    // j4.cancel();
    View Code

    3、取消定时任务

  • 相关阅读:
    jeecg多页签的选择切换
    设计模式:工厂三姐妹一网打尽
    设计模式:工厂三姐妹一网打尽
    设计模式:工厂三姐妹一网打尽
    设计模式:工厂三姐妹一网打尽
    三、原子操作
    三、原子操作
    三、原子操作
    三、原子操作
    WebClient HttpWebRequest从网页中获取请求数据
  • 原文地址:https://www.cnblogs.com/huoan/p/9709778.html
Copyright © 2011-2022 走看看