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

ここで、「email」はジョブ タイプです。私がやろうとしているのは、タイプに関係なく、キュー内の次のジョブを取得することです。それは可能ですか?

参考までに、私のオブジェクトには、ジョブと同じ名前のメソッドがあるため、どの種類のジョブを取り出すかは問題ではありません。ジョブ ワーカーでいつでも処理できます。

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 に答える