如何将一个worker分配给队列?

时间:2012-10-28 11:21:54

标签: ruby-on-rails ruby-on-rails-3 resque

在Resque中,如果我有以下内容:

bundle exec rake resque:work QUEUE=critical,high,normal,low,aggregate

我如何表明我只需要一个,而且只需要一个工作人员来处理特定队列(即聚合队列)?

1 个答案:

答案 0 :(得分:3)

我认为不可能

如果您查看当前代码超过here

的原因

Resque poll all the queue

value = @redis.blpop(*(queue_names + [1])) until value

其中queue_names是您的critical,high,normal,low,aggregate

所以这里的重点无论你是否使用单一的resque工作或多工人

使用resque:workers每个resque工作轮询所有可用队列和

从工作开始对其起作用的队列中的任何消息都会消耗

消息

如果你只想为上面的队列分配一个工作,那么最好运行两个rake

像这样的任务

bundle exec rake resque:worker COUNT=4 QUEUE=critical,high,normal,low

bundle exec rake resque:work QUEUE=aggregate

这样您就可以为aggregate队列

分配一个resque工作者

希望这个帮助