我在 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 吗?它是一个文件,还是编译成代码?如果它是一个可访问的文件,那么也许我可以“创建”工作类型。