【问题标题】:Node scheduler not running on every day节点调度程序不是每天都在运行
【发布时间】:2019-05-20 19:52:26
【问题描述】:

我已经创建了一个类似的调度器

var rule = new schedule.RecurrenceRule();
    rule.dayOfWeek = [0, 1, 2, 3, 4, 5, 6];
    rule.date = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29,30,31];
    rule.hour = 15;
    rule.minute = 0;
    rule.second = 0;

    var timeEverySecond = schedule.scheduleJob(rule, function(){});

但问题是它第一次只在 15 小时运行一次,而不是每天运行一次。但我也设置了星期几和日期。如何创建规则以每 15 小时运行一次此代码。

【问题讨论】:

  • rule.hour = 15; 应该没问题。无需提供dayOfWeek、日期、分钟、秒等
  • 最初我只给 rule.hour 但它执行一次,再也不会执行。所以只有我开始给剩余的

标签: node.js scheduled-tasks


【解决方案1】:

你可以使用 node-cron。

let cron = require('node-cron');

cron.schedule('0 */15 * * *', () => {
 // Do your stuff
});

【讨论】:

    【解决方案2】:

    看起来您正在使用节点调度模块,每 15 小时执行一次,您可以尝试以下操作:

    schedule.scheduleJob('*/15 * * *', function(){
         console.log("Executing by every 15 mins !!")
    });
    

    如果您想在一天中的第 15 小时(即每天下午 3 点)执行,您可以尝试以下操作:

    var rule = new schedule.RecurrenceRule();
        rule.dayOfWeek = [0, 1, 2, 3, 4, 5, 6];
        rule.hour = 15;
        rule.minute = 0;
        rule.second = 0;
    
    var timeEverySecond = schedule.scheduleJob(rule, function(){});
    

    【讨论】:

      【解决方案3】:

      1* 2* 3* 4* 5* 6*

      6* 星期几 (0 - 7)(0 或 7 是太阳)

      5* 月 (1 - 12)

      4* 月中的某一天 (1 - 31)

      3* 小时 (0 - 23)

      2* 分钟 (0 - 59)

      1* 秒(0 - 59,可选)

      var schedule = require('node-schedule');
      
      var j = schedule.scheduleJob('* * * * *', function(){
        console.log('your code!');
       });
      

      【讨论】:

        猜你喜欢
        • 2020-07-29
        • 1970-01-01
        • 1970-01-01
        • 2017-11-23
        • 2015-10-19
        • 2015-09-17
        • 2011-06-25
        • 2017-03-24
        • 1970-01-01
        相关资源
        最近更新 更多