2013-05-31 17 views
7

Kue'u kullanarak, her Perşembe günü bir kez çalıştırılacak işi nasıl zamanlarım? Kue readme, bir İşi geciktirebileceğimi, ancak belirli bir zamanda İşi tekrar tekrar uygulayacağımızdan bahseder?Her Perşembe günü Kue kullanarak iş nasıl zamanlanır?

Bir cron işi ile istediğimi yapabilirim, ancak Kue'nin özelliklerini beğeniyorum.

İstediğim şey, bir işyerini Perşembe günü her seferinde bir kez değil, yalnızca bir kez işlemektir.

cevap

14

Benzer bir sorum vardı ve temel olarak aşağıdakileri buldum. Başka bir çözümü varsa başka bazı fikirleri görmeyi çok isterim.

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 asgari belgelerine sahiptir, ancak kaynak iyi

0

küe-zamanlayıcı bir göz atın okumak için yorumladı ve kolaydır.

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(); 
}); 

küe-zamanlayıcı dokümanlar: Ben böyle bir şey yapmak mümkün olmalıdır eminim https://github.com/lykmapipo/kue-scheduler; dokümanlarında cron öğelerine bağlantı: https://github.com/kelektiv/node-cron;

İlgili konular