2016-01-20 27 views
2

我期待明天的流量(新闻等)大量增加到我的网站。我希望能够在流量不下降的情况下管理流量。我知道我必须添加dyno,成本并不是太高,因为只是暂时保持排队。在我的网站添加临时的Dyno for Spike流量(Heroku Rails应用)

我使用New Relic的加载项监视

这个职位是非常有帮助:https://serverfault.com/questions/394602/how-to-prepare-for-a-huge-spike-in-traffic-for-launching-a-website-hosted-on-her

但是读取后浇在Heroku的文档后,我一直无法弄清楚如何我其实做到这一点...

我可以运行什么命令或从什么接口可以启动一个新的测功机来处理添加的网络流量?然后,我可以运行什么命令或从什么界面消除流量恢复到正常水平时的额外测功机?

Heroku谈论一堆不同类型的dyno's等,但我不知道哪一个我应该使用,然后如何实际启动一个新的。

回答

1

Heroku有一个platform-api gem这将在这种情况下对你有用。首先将宝石添加到您的Gemfile并安装它。

gem platform-api 

一旦安装完毕,安装Heroku的客户,最好在初始化

$heroku = PlatformAPI.connect(ENV['HEROKU_API_KEY', default_headers: {'Accept' => 'application/vnd.heroku+json; version=3'}) 

你可以找到如何获得Heroku的API KEY here

现在,缩放的一部分。我猜你有一些内部指标来决定何时进行扩展(按进程数量,请求数量等)。下面的命令将扩大您需要DYNOS的数量,

$heroku.formation.update(APP_NAME, PROCESS_NAME, {quantity: DYNO_COUNT}) 

这将在需要时应用程序的特定进程扩展到DYNOS的X号。

您可以使用相同的命令来缩减您的dynos数量。此外,下面的命令将帮助你获得当前配置的特定进程DYNOS数量

info = $heroku.formation.info(APP_NAME, PROCESS_NAME) 
info['quantity'] 

为了让供应给您应用中的所有DYNOS的数量,使用

$heroku.app.info(APP_NAME) 

编辑

如果您希望手动执行此操作,那么您可以在heroku的仪表板本身中执行此操作。或者,如果您更喜欢命令行,请安装heroku toolbelt,下面是缩放应用程序的命令。

heroku ps:scale process_name=dyno_count -a app_name 

要获得DYNOS列表供应

heroku ps -a app_name 
+0

有没有办法,因为我监视New Relic的数字做手工? – Javier

+0

我现在宁愿不将它自动化。也许下线,但在这一点上,我只是想手动控制。 – Javier

+0

通过回答更新,包括手动步骤。 – avinoth