在开发模式下使用多个Resque工作者

16

嗨,开发环境下是否可能同时运行多个Resque worker?我找到了这段代码,但不确定它是否能正常工作以及如何操作。

http://pastebin.com/9GKk8GwR

到目前为止,我使用的是标准的

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

redis-server /usr/local/etc/redis.conf
2个回答

42
你需要添加一个名为COUNT的环境变量,然后将resque:work更改为resque:workers。例如,要启动3个工作者:
bundle exec env rake resque:workers QUEUE='*' COUNT='3'

太棒了!我以前总是打开3-5个单独的控制台选项卡,每个选项卡里都有一个工作进程。现在我可以把它们全部放到一个选项卡中。谢谢! - Daniel Bonnell

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


2
要同时启动 Web Worker,请使用以下命令:foreman start -c web=1,worker=2 - Ilya Scharrenbroich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接