0

我在 heroku 上运行 ruby​​/rails,我想扩展我的工人..

Heroku 有这个很棒的 api 来扩展工人..

heroku.post_ps_scale(APP_NAME, 'worker', count) 
#brings up new worker dyno's, or scales down

问题是工人不知道队列......如果我有两个客户并且每个客户都有自己的队列延迟工作。然后他们的任务相互冲突。

让工作人员在不同的队列上工作,但他们与启动他们的应用程序在同一个测功机上(又名网络测功机)

cmd = "rake jobs:work WORKER=STYLE_SERF QUEUES=#{queue}"
Rush::Box.new[Rails.root].bash( cmd, :background => true )

问题 如何创建可感知队列的工作人员测功机?
我希望这将是上面代码的某种组合。

编辑:有些人建议我使用 procFile,我面临的问题是我不知道我需要的数量或工作队列。它非常适合设置在特定队列中工作的“紧急”或“due_yesterday”工作人员......但我希望每个客户都有一个队列。
所以worker_1 处理client_1 作业,worker_2 处理client_2 作业。永远不要穿越到另一个。
很容易想象 client_1 每小时更新一次产品,client_2 每周更新一次。

扩展问题(基于编辑)可以在运行时调整 procfile 吗?它是一个文件,还是编译成代码?如果它是一个可访问的文件,那么也许我可以“创建”工作类型。

4

1 回答 1

1

您可以尝试http://hirefire.io/每月 10 美元,您有 30 天的时间试用它,但根据您的队列大小和响应时间惊人地扩展工作人员和测功机,它是可定制的!

于 2012-12-20T08:57:52.120 回答