heroku resque,在heroku上的特定worker上运行特定队列

时间:2013-06-04 08:25:00

标签: heroku resque

我有一个问题。我在heroku上使用resque。有5名工人和5个队列。 现在,我可以在特定工作者上运行特定队列(比如说queue4)(假设工人1)。

2 个答案:

答案 0 :(得分:1)

不,你不能。 Resque要求您在环境变量中(或在项目顶部的.resque文件中)设置QUEUE。 在heroku上,你不能根据dyno使用不同的环境变量。

您可以在Procfile

中执行以下操作
urgent: QUEUE=urgent rake environment resque:work
low: QUEUE=low rake environment resque:work

您将获得两名不同的工作人员,并可根据您的需要单独进行扩展 它们都会运行相似,但是不同的环境变量使用不同的队列。

答案 1 :(得分:0)

如果您使用delayed_job,则可以使用

在Procfile中。

worker_l:bundle exec rake jobs:work QUEUE = worker_l worker_m:bundle exec rake jobs:work QUEUE = worker_m worker_h:bundle exec rake jobs:work QUEUE = worker_h worker_u:bundle exec rake jobs:work QUEUE = worker_u

然后

handle_asynchronously:do_it,:queue => 'worker_h'