2013-04-07 3 views
3

из Kué документов, создавая очереди и добавление задания будет легко, но я не могу проследить, как работа хранитсядобавление задания в очередь в КУЭ

var kue = require('kue') 
    jobs = kue.createQueue(); 

добавив при приеме на работу

jobs.create('email', { 
    title: 'welcome email for tj' 
    , to: '[email protected]' 
    , template: 'welcome-email' 
}).priority('high').save(); 

пример легко понять, но, что, если мне нужно больше вариантов, например, в примере, как добавить опцию объявления -, ad: 'we are the best'

jobs.create('email', { 
    title: 'welcome email for tj' 
    , to: '[email protected]' 
    , ad: 'we are the best' 
    , template: 'welcome-email' 
}).priority('high').save(); 

как я собираюсь это сделать ?.

ответ

3

Второй аргумент jobs.create - это объект, который будет доступен в процессоре заданий. Вы можете поместить туда любые поля. Затем, как только вы настроите свой процессор, вы можете использовать поле «объявление».

Добавление к вашему примеру:

jobs.process('email', function (job, done) { 
    var advertOption = job.data.ad; 

    // Do your emailing stuff, like rendering template and sending... 

}); 

Вы можете указать количество рабочих вы хотите, если вы даете три арга:

jobs.process('email', 1, function (job, done) { // samesame 

associated source легко прочитать и хорошо прокомментирован

+0

Я думаю, что второй аргумент для jobs.process - это не количество рабочих, а количество заданий, которые каждый рабочий должен снять с очереди (и обрабатывать синхронно). В зависимости от вашего определения работника, хотя, я вижу, они использовали его в источнике. – DanS

+0

@ DanS Рабочему я имел в виду класс [Рабочий класс] (https://github.com/LearnBoost/kue/blob/master/lib/queue/worker.js). Второй аргумент - это число «новых рабочих()», которые будут созданы. Что касается обработки асинхронной или синхронной обработки, рабочие будут выполнять одно задание за раз, но, как и все в узле, они обрабатываются асинхронно. Поэтому, если у вас есть работа с сетью с высокой задержкой, вы можете настроить больше работников, чем количество ядер, работающих на вашем компьютере. Например: электронная почта через SES – jwags

+0

Извините jwags, вы правы. Я запутал его с помощью подхода кластера (multi-process), но оба они асинхронны. – DanS

Смежные вопросы