2012-05-03 39 views
11

嗨,是否有可能在开发中同时运行多个Resque工人?我发现这段代码,但不知道是否会工作,以及如何..Resque多个工人在开发模式

http://pastebin.com/9GKk8GwR

到目前为止,我使用我知道如何做到这一点的标准

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

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

回答

37

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

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

这一工程!谢谢 – Stpn

+0

这太神奇了!我一直有3-5个单独的控制台标签,每个标签都有一名工作人员。现在我可以将它们全部整合到一个标签中。谢谢! – ACIDSTEALTH

12

的唯一途径,我认为这是一个很好的方式,它使用了工头(与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

+1

要启动网络工作者,以及使用这样的:'工头开始-c网= 1,工人= 2' –