Rails 3 + Heroku +延迟工作 - 帮助我理解!

时间:2011-01-06 02:41:37

标签: ruby-on-rails ruby-on-rails-3 heroku delayed-job

我在理解这篇文章时遇到了问题:http://blog.darkhax.com/2010/07/30/auto-scale-your-resque-workers-on-heroku

当我延迟Heroku提供的工作时,我不明白为什么我需要Redis + Resque。

据我了解,我仍然要为工人买单,对吗?使用该解决方案的主要优势是什么?

问候。

4 个答案:

答案 0 :(得分:3)

如果您不知道为什么需要Resque,那么您不需要它;)

Resque用于高扩展性。 delayed_job适用于较小规模的东西,但是一旦达到Github的大小,你就需要像Resque这样的东西。如果delayed_job适合你,那么请坚持下去。在后台作业队列大约30,000左右之前,您无需担心更换它。

答案 1 :(得分:0)

要使用延迟作业自动调整heroku worker,您可以挂钩入队并挂钩并使用heroku api查询/更新worker的数量。

对于enqueue上最基本的实现,检查是否有工人,如果没有添加工人。之后,检查是否有其他延迟的工作,如果没有将工人减少到0。

显然,你可以通过缩放的方式使其变得更加复杂。

以下是基本实施:https://github.com/phaza/Heroku-Delayed-Job-Autoscale

答案 2 :(得分:0)

hirefireapp是一个新的简单的自动扩展工作人员解决方案。

它根据队列大小(可配置)为您生成工作人员,然后在不再需要时“触发”它们。您支付dyno时间(到最近的秒)和hirefireapp服务。从理论上讲,你也可以使用开源的雇佣宝石来推销自己的宝石。

如果您选择,它还可以处理缩放Web端,因此您可以根据当前延迟生成更多Web dynos。

答案 3 :(得分:0)

您还可以使用Hirefireapp.com来监控和扩展您的应用