2017-04-06 78 views
0

我想每天運行節點任務8AM使用節點時間表包https://www.npmjs.com/package/node-schedule,而不是每天8AM它每分鐘運行。我可以運用哪些正確的方法來實現我的任務?我們在linux上使用node-schedule不確定在這種情況下格式是否不同。如何使用node-schedule在指定的時間運行任務?

cron.js

var cronSchedule = require('node-schedule'); 

module.exports = function CronJob() { 
    var rule = new cronSchedule.RecurrenceRule(); 
    rule.hour = 8; 
    var dailyJob = cronSchedule.scheduleJob(rule, function() { 
    console.log('Testing 8AM'); 
      async.eachSeries(directories, function (dir, cb1) { 
       var dir = __dirname + dir; 
       // get files for the directory 
       }); 
      }, function (err, fileInfos) { 
       if (err) { 
        console.info('error', err); 
        return; 
       } 
      }); 
    }); 
} 
+1

從技術文檔:*「注:值得注意的是,重複規則的組件的默認值如果我們沒有明確地將分鐘設置爲0以上,則該消息將在下午5:00,下午5:01,下午5:02記錄,而不是,下午5:59。可能不是你想要的。「* – Mateusz

+0

這是有道理的,我添加了'rule.minute = 0',並解決了我的問題。 – hussain

回答

0

如果你想自動執行任務,它會反覆出現,那麼你可以試試下面的代碼:

var schedule = require('node-schedule'); 
var scheduleFunction = schedule.scheduleJob('0 8 * * *', function(){ 
    console.log('Yeah ! i did.')); 
}); 

上面的代碼將在08每天執行: 00 AM。

或者,如果你想在每季度開始執行一次代碼,那麼試試下面的代碼:

var myRule = {hour: 0, minute: 0, dayOfWeek: 1, month: [0, 3, 6, 9]}; 
var scheduleFunction = schedule.scheduleJob(myRule, function(){ 
    console.log('will execute every quarter')); 
}); 
相關問題