ruby-on-rails - 在 Heroku Rails 应用程序上动态缩放 Dyno 工作线程大小

标签 ruby-on-rails ruby heroku heroku-api

我正在开发一个项目,该项目通过 Rails Worker 启动一个进程,该进程非常消耗资源,并且只能由 Heroku 上的 Performance Worker 正确处理,1X 个 Worker 被杀死,因为它们使用了太多 RAM,2X 个 Worker 可以几乎无法处理超出 RAM 限制 160% 的负载。绩效 worker 可以很好地完成工作,没有任何问题。

我的问题是,有没有办法在作业启动之前动态地将 Dyno 大小切换为性能,然后在作业完成或队列为空时将其缩小?

我知道 HireFire 存在,但据我所知,这项服务只会根据队列长度等增加工作人员数量?我想到的另一个可能的解决方案是使用 Heroku API,它有一个 Dyno 端点,可以在作业开始之前调整工作器 dyno 的大小,然后在作业结束时重新调整大小。

还有其他人对此问题有其他建议、想法或策略吗?

谢谢!

最佳答案

最好的方法就是您提到的方法:使用 Heroku Platform API在开始工作之前放大 Dyno 尺寸,然后再缩小。

这是因为像 HireFire 这样的工具只能通过检查应用程序响应时间、路由器队列等内容来工作,因此它们无法知道您将要运行某些作业,然后为此进行扩展。

关于ruby-on-rails - 在 Heroku Rails 应用程序上动态缩放 Dyno 工作线程大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38725148/

相关文章:

ruby-on-rails - 云上的中间人服务器和 apache

ruby-on-rails - heroku db:push 错误未初始化常量 Sequel::Postgres::PGError

ruby-on-rails - Rackspace vs EC2 vs Heroku vs Engine Yard for ruby​​ on rails

ruby-on-rails - 以数组和划定字符串为参数的函数

mysql - Rails 3 Mysql rake 数据库 :create issue

javascript - Rails 从 Rails 2 升级到 Rails 3 后如何修复 HTML 转义

ruby-on-rails - ruby 应用程序中缺少 searchkick 索引

ruby-on-rails - Rails 3 App 中的用户可自定义背景

ruby - 多行字符串格式

git - Heroku Git Repo 是公开的吗?