【问题标题】:Schedule task for every 4 hours in Node.js在 Node.js 中每 4 小时安排一次任务
【发布时间】:2020-11-28 01:02:06
【问题描述】:

如何使用 Node.js 中的“node-schedule”安排任务在 4 小时后运行 目前我的代码如下,但没有按预期响应。

var schedule = require('node-schedule');
var task = schedule.scheduleJob('* */4 * * *', function () {
    console.log('Scheduled Task');
});

【问题讨论】:

    标签: node.js


    【解决方案1】:

    您的语法会创建一个每 4 小时每分钟运行一次的 cron。

    您要查找的语法是0 */4 * * *。 Wich 每 4 小时执行一次。

    您可以使用网站http://crontab.guru 测试 cron 语法

    在节点中设置 cron 的另一个选项是使用规则。见https://github.com/node-schedule/node-schedule

    var cron = require('node-schedule');
    var rule = new cron.RecurrenceRule();
    rule.hour = 4;
    rule.minute = 0;
    cron.scheduleJob(rule, function(){
        console.log(new Date(), 'Every 4 hours');
    });
    

    【讨论】:

    • 此处基于规则的选项使其每天凌晨 4 点运行,而不是每四个小时运行一次。要使用规则完成每四小时一次的行为,您需要构造一个带步长值的 Range。
    • 另外,“每4小时每分钟”不清楚;原始表达式在每个能被四整除的小时内每分钟运行一次。换句话说,它将在 12:00、12:01、12:02、...、12:59 运行,然后等到 4:00,然后是 4:01、4:02、...、4 :59,然后是 8:00,依此类推。
    【解决方案2】:

    试试这个

    var cron = require('node-schedule');
    var rule = new cron.RecurrenceRule();
    rule.hour = new cron.Range(0,23,4);
    rule.minute = 0;
    cron.scheduleJob(rule, function(){
        console.log(new Date(), 'Every 4 hours');
    });
    

    新的 cron.Range(0,23,4); 4是可选的step参数

    【讨论】:

      猜你喜欢
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 2018-07-05
      • 2014-01-12
      • 2019-06-06
      • 1970-01-01
      相关资源
      最近更新 更多