在开发模式下重新激活多个worker

时间:2012-05-03 01:56:00

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

您是否有可能在开发过程中同时运行多个Resque工作人员?我发现了这段代码,但不确定它是否会起作用以及如何...

http://pastebin.com/9GKk8GwR

到目前为止,我正在使用标准

bundle exec env rake resque:work QUEUE='*'

redis-server /usr/local/etc/redis.conf

2 个答案:

答案 0 :(得分:39)

您需要添加COUNT环境变量,然后将resque:work更改为resque:workers。例如,要启动3名工人:

bundle exec env rake resque:workers QUEUE='*' COUNT='3'

答案 1 :(得分:13)

我知道如何做到这一点的唯一方法,我认为这是一个很好的方式,它使用Foreman(与heroku使用的相同)。

您可以在名为 Procfile 的文件中定义您的流程,例如:

web:    bundle exec thin start -p $PORT
worker: bundle exec rake resque:work QUEUE=*
clock:  bundle exec rake resque:scheduler

然后你可以用一个命令启动你的应用程序

foreman start

要启动一种类型的多个进程,就像这样:

foreman start -c worker=2

https://github.com/ddollar/foreman

http://blog.daviddollar.org/2011/05/06/introducing-foreman.html