【问题标题】:How can we run the node-cron job in every 12 hours interval?我们如何每隔 12 小时运行一次 node-cron 作业?
【发布时间】:2016-12-05 11:23:11
【问题描述】:

我想每 12 小时发送一次电子邮件,为此我使用了node-cron

我使用了以下代码,但它没有给出实际结果,所以请帮我解决这个问题,

var job = new CronJob('0 0 */12 * * *', function(){
   //email send code ..
});

【问题讨论】:

    标签: node.js cron node-cron


    【解决方案1】:

    看看documentation,代码应该是这样的:

    var cron = require('node-cron');
    
    cron.schedule('0 0 */12 * * *', function(){
      console.log('running a task every twelve hours');
    });
    

    注意:您需要让应用程序一直运行,否则 cron 将不会执行。

    如果您在控制台上打印 crone 时间,我们将如下所示:

          cronTime: {
            source: '0 0 */12 * * *',
            zone: 'America/Los_Angeles',
            second: {
              '0': true
            },
            minute: {
              '0': true
            },
            hour: {
              '0': true,
              '12': true
            },
            dayOfMonth: {
              '1': true,
              '2': true,
              '3': true,
              '4': true,
              '5': true,
              '6': true,
              '7': true,
              '8': true,
              '9': true,
              '10': true,
              '11': true,
              '12': true,
              '13': true,
              '14': true,
              '15': true,
              '16': true,
              '17': true,
              '18': true,
              '19': true,
              '20': true,
              '21': true,
              '22': true,
              '23': true,
              '24': true,
              '25': true,
              '26': true,
              '27': true,
              '28': true,
              '29': true,
              '30': true,
              '31': true
            },
            month: {
              '0': true,
              '1': true,
              '2': true,
              '3': true,
              '4': true,
              '5': true,
              '6': true,
              '7': true,
              '8': true,
              '9': true,
              '10': true,
              '11': true
            },
            dayOfWeek: {
              '0': true,
              '1': true,
              '2': true,
              '3': true,
              '4': true,
              '5': true,
              '6': true
            }
          },
    

    【讨论】:

    • 你能给我一个确切的解释吗?
    • 你能创建一个新文件,把我的代码放在那里(也许改成 1 小时)然后再试一次吗?这应该有效,因为我刚刚测试过它并且效果很好。如果这也适用于您,那么您的代码/环境中的其他地方就有问题。
    • '0 */2 * * *' 请告诉我这是 2 小时吧?
    • 我发现了一个错误。似乎实际上需要可选的第二个。这很奇怪,因为它在他们的文档中说不需要。每 2 小时你应该尝试 '0 0 */2 * * *'
    • '0 0 */12 * * *' 先尝试 1 小时或类似的时间。您真的应该在一个新文件中尝试它,然后执行该文件以查看问题是否可能是其他问题。
    【解决方案2】:

    你可以试试这个模块https://www.npmjs.com/package/node-schedule

    var schedule = require('node-schedule');
    
    
    var rule = new schedule.RecurrenceRule();
    
    
    var j = schedule.scheduleJob('1 * * * * *', function(){
      console.log('Will run after every mint');
    });
    
    
    
    var rule = new schedule.RecurrenceRule();
    
    rule.second=1;
    
    var j = schedule.scheduleJob(rule, function(){
      console.log('this will run after every one seocnd ');
    });
    

    【讨论】:

      【解决方案3】:

      每隔 12 小时试试这个...

      var job = new CronJob('0 0 12 * * *', function(){
      
        //email send code ..
      });
      

      0 --> 几秒钟 0 --> 几分钟

      12--> 12 小时间隔

      【讨论】:

        猜你喜欢
        • 2017-05-26
        • 2018-10-17
        • 1970-01-01
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        • 2011-09-19
        • 1970-01-01
        • 2018-02-18
        相关资源
        最近更新 更多