2013-05-31 3 views
7

Kue का उपयोग करके, मैं हर गुरुवार को एक बार नौकरी कैसे निर्धारित कर सकता हूं? क्यू रीडमे का उल्लेख है कि मैं नौकरी में देरी कर सकता हूं, लेकिन एक निश्चित समय पर नौकरी को बार-बार निष्पादित करने के बारे में क्या?प्रत्येक गुरुवार को कुए का उपयोग करते हुए नौकरी कैसे निर्धारित करें?

मैं क्रॉन नौकरी के साथ जो चाहता हूं वह कर सकता हूं, लेकिन मुझे क्यू की विशेषताएं पसंद हैं।

जो भी मैं चाहता हूं वह गुरुवार को किसी भी समय नौकरी को संसाधित करना है, लेकिन केवल एक बार।

उत्तर

14

मेरे पास एक समान प्रश्न था और मैं मूल रूप से निम्नलिखित के साथ आया था। अगर किसी और के पास एक अलग समाधान है तो मुझे कुछ अन्य विचार देखना अच्छा लगेगा।

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 न्यूनतम प्रलेखन है, लेकिन स्रोत अच्छी तरह से टिप्पणी की है और आसान है पढ़ने के लिए

0

kue-अनुसूचक पर एक नजर डालें।

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-अनुसूचक डॉक्स: मैं बहुत यकीन है कि आप इस तरह कुछ करने के लिए सक्षम होना चाहिए हूँ https://github.com/lykmapipo/kue-scheduler; क्रॉन सामग्री के लिए अपने दस्तावेज़ों में लिंक: https://github.com/kelektiv/node-cron;

संबंधित मुद्दे