如何使用Kue在每个星期四安排一次工作?

使用Kue ,我如何安排每周四执行一次工作? Kue的自述提到我可以推迟一个工作,但是在特定的时间重复执行这个工作呢?

我可以用cron工作来做我想做的事,但是我喜欢Kue的function。

我想要的是在周四的任何时候处理一次工作,但只有一次。

我有一个类似的问题,我基本上想出了以下几点。 如果其他人有不同的解决scheme,我希望看到一些其他的想法。

var jobQueue = kue.createQueue(); // Define job processor jobQueue.process('thursday-jobs', function (job, done) { var milisecondsTillThurs = // TODO: Get the time until next thursday. For this I used moment.js // do this job again next Thursday jobQueue.create('thursday-jobs').delay(milisecondsTillThurs).save(); // For Example purpose this job waits then calls done setTimeout(function () { done(); }, 10000); }); // Use some initialization code to check if the job exists yet, and create it otherwise kue.Job.rangeByType('thursday-jobs','delayed', 0, 10, '', function (err, jobs) { if (err) {return handleErr(err);} if (!jobs.length) { jobQueue.create('thursday-jobs').save(); } // Start checking for delayed jobs. This defaults to checking every 5 seconds jobQueue.promote(); }); 

Kue的文档很less,但是源代码很好评,易于阅读

看看kue-scheduler。 我很确定你应该可以做这样的事情:

 var kue = require('kue-scheduler'); var Queue = kue.createQueue(); //create a job instance var job = Queue .createJob('every', data) .attempts(3) .backoff(backoff) .priority('normal'); //schedule it to run every Thursday at 00:00:00 var thursday = '0 0 0 * * 4'; Queue.every(thursday, job); //somewhere process your scheduled jobs Queue.process('every', function(job, done) { ... done(); }); 

kue-scheduler文档: https : //github.com/lykmapipo/kue-scheduler ; 在他们的文档链接到cron的东西: https : //github.com/kelektiv/node-cron ;