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

Stp*_*tpn 14 ruby background ruby-on-rails resque ruby-on-rails-3

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

http://pastebin.com/9GKk8GwR

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

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

redis-server /usr/local/etc/redis.conf
Run Code Online (Sandbox Code Playgroud)

Dyl*_*kow 40

您需要添加一个COUNT环境变量,然后更改resque:workresque:workers.例如,要启动3个工作人员:

bundle exec env rake resque:workers QUEUE='*' COUNT='3'
Run Code Online (Sandbox Code Playgroud)


Ism*_*reu 13

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

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

web:    bundle exec thin start -p $PORT
worker: bundle exec rake resque:work QUEUE=*
clock:  bundle exec rake resque:scheduler
Run Code Online (Sandbox Code Playgroud)

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

foreman start
Run Code Online (Sandbox Code Playgroud)

要启动一个类型的多个进程,它是这样的:

foreman start -c worker=2
Run Code Online (Sandbox Code Playgroud)

https://github.com/ddollar/foreman

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

  • 要启动Web worker也要使用:`foreman start -c web = 1,worker = 2` (2认同)