2

我理解 Kue 的工作方式,我需要指定我将获得的工作类型:

jobs.process('email', function(job, done){
    var pending = 5
      , total = pending;

    setInterval(function(){
      job.log('sending!');
      job.progress(total - pending, total);
      --pending || done();
    }, 1000);
  }); 

其中“电子邮件”是工作类型。我正在尝试做的是在队列中获得下一个工作,无论类型如何。那可行吗?

作为参考,我的对象具有与工作命名相同的方法,因此无论我拉出什么样的工作,我总是可以与我的工作人员一起处理它。

4

1 回答 1

0

我最终做的是制作几类广泛的任务,并将工人的名字作为工作的一部分插入到所有人中。代码最终看起来像这样:

jobs.process('social_post', function(job, done){
    var this_worker = factory(job.data.worker);
    this_worker(job,done);
  });

工厂很简单:

var worker_factory = function(worker_name) {
    switch(worker_name){
        case 'facebook':
            return FacebookWorker;
        case 'social_response':
            return SocialResponder;

    };
};

我正在使用响应者队列作为 Kue 已经功能齐全的任务管理的过度杀伤力。

希望这可以帮助。

于 2012-05-08T21:55:31.893 回答