尝试 运行 在不同时间进行多项 kue 作业,但它们同时开始
Trying to run multiple kue jobs at different times, but they're starting at the same time
我正在尝试 运行 根据不同的时间表进行两项不同的工作(请参阅下面的代码 ex)。出于某种原因,该工作应该每天晚上 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);
在我这边工作正常
const jobOneSchedule = '39 11 * * *'; //Runs at 11:39 pm
const jobTwoSchedule = '*/20 * * * * *'; //Run every twenty seconds
你能试试刷新redis再试一次吗
setInterval 的缺点是如果服务器重新启动,您的作业将永远不会执行,因为间隔将被清除。
我正在尝试 运行 根据不同的时间表进行两项不同的工作(请参阅下面的代码 ex)。出于某种原因,该工作应该每天晚上 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);
在我这边工作正常
const jobOneSchedule = '39 11 * * *'; //Runs at 11:39 pm
const jobTwoSchedule = '*/20 * * * * *'; //Run every twenty seconds
你能试试刷新redis再试一次吗
setInterval 的缺点是如果服务器重新启动,您的作业将永远不会执行,因为间隔将被清除。