2 つの異なるジョブを異なるスケジュールで実行しようとしています (以下のコード例を参照)。何らかの理由で、1 日 1 回午後 11 時に実行されるはずのジョブが、他のジョブが実行されるたびに実行されます。それらが実行されると予想されるときにそれらを実行するにはどうすればよいですか? ご協力ありがとうございました。
const kue = require('kue-scheduler');
const Queue = kue.createQueue();
const jobOneSchedule = '0 0 23 * * *';
const jobTwoSchedule = '0 0 0/1 * * *';
let job1 = Queue.createJob('doJobOne')
.priority('low')
.unique('unique_one')
.removeOnComplete('true');
let job2 = Queue.createJob('doJobTwo')
.priority('high')
.unique('unique_two')
.removeOnComplete('true');
Queue.every(jobOneSchedule, job1);
Queue.every(jobTwoSchedule, job2);
Queue.process('doJobOne', function(job, done){
console.log('Job one done');
done();
});
Queue.process('doJobTwo', function(job, done){
console.log('Job two through');
done();
});
回避策
回避策として、job2 のものをすべて削除して、次のように実行する必要がありました。
// Do job2 stuff every hour (3.6e6 ms)
const jobTwoInterval = 3.6e6;
setInterval(function(){
console.log('Job two through');
}, jobTwoInterval);