好的..在heroku上我有24个工人(据我所知) 我说1000个客户。每个人都有他们自己的"架构"在postgresql数据库中。
每个客户都有可以完成的任务"之后" ...向我的公司后端发送订单,就是一个很好的例子。
我在想我可以为每个客户端创建一个新队列,每个队列都有自己的工作者(进程)。这似乎不在牌中。
好吧..我现在的想法是在客户记录中有一个队列字段.. 所以客户端1到15在queue_a中 并且客户端16到106在queue_b .. ect如果一个客户端正在使用堆,我们可以将它们移动到新队列,或者将其他客户端移出缓慢的队列。可以收集低排量的客户..这将是一种平衡的行为,但如果我们跟踪指标(我们无论如何都会如此),它将不会很难管理。
(任何反击的想法都会很棒,我真的在吐痰阶段)
但是现在。我想弄清楚如何为每个队列创建一个worker。 https://gist.github.com/486161告诉我如何创建X工作者,但实际上并没有让我将工作者设置为队列。如果我知道这一点,以及如何获得队列列表,我想我正在走向可行的解决方案。
<小时/> 阅读中http://blog.winfieldpeterson.com/2012/02/17/resque-queue-priority/
答案 0 :(得分:13)
我只是坚持主题:)
在resque中获取所有队列非常容易
Resque.queues
是所有队列名称的列表,它不包括'failed'队列,我做了类似的事情
(['failed'] + Resque.queues).each do |queue|
queue_size = queue=='failed' ? Resque::Failure.count : Resque.size(queue)
end