2017-04-06 16 views
0

node-scheduleパッケージhttps://www.npmjs.com/package/node-scheduleを使用して毎日8AMでノードタスクを実行したいが、毎分8AMの代わりに毎日実行している。私の仕事を達成するためにルールに適用できる正しい方法は何ですか?私たちはLinux上でnode-scheduleを使用していますが、その場合にフォーマットが異なるかどうかはわかりません。あなたは自動的にタスクを実行する場合node-scheduleを使って指定された時間にタスクを実行する方法は?

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

ドキュメントから:* "注:これは、ことを繰り返しルールのコンポーネントのデフォルト値を注目に値します(2番目はcronに精通している場合を除いて0です)。上記の0分を明示的に設定しなかった場合、メッセージは午後5時、午後5時01分、午後5時02分にログに記録されます。午後5時59分、おそらくあなたが望むものではありません。 "* – Mateusz

+0

私は' rule.minute = 0'を追加してそれを解決しました。 – hussain

答えて

0

cron.js、あなたのコードの下に試すことができ、その後再発されます。上記のコードは08で、毎日実行されます

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

: 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')); 
}); 
関連する問題