如何在Heroku上停止应用程序?


198

我在Heroku上有一个应用程序,很少有人在使用。但是,我注意到有一些数据问题我想同时修复和停止该应用程序,以便用户不要输入任何新内容。

有没有办法在Heroku上停止应用程序而不是销毁它?我看到那里有重新启动服务器命令...尽管我没有看到类似“停止”的信息

Answers:


304

要完全“停止”您的应用程序,您可以将网络动态范围缩小到零,这可以有效地使您的所有应用程序HTTP进程脱机。

$ heroku ps:scale web=0
Scaling web processes... done, now running 0

5
打扰一下,看来这两个命令都合适。干杯
jrob00

10
修复所需的内容后,请不要忘记这样做:heroku ps:scale web=1否则,您的应用程序将永远无法恢复……
mjnissim 2012年

10
这是正确的解决方案。维护模式实际上并不会停止该应用程序,只会阻止访问该应用程序的流量。这应该是公认的答案。
jhoff 2012年

1
在Rails中,如果您的Procfile中有以web开头的行,请使用heroku ps:scale web=0,否则您可能会收到no such process type app defined in Procfile.
Minh Triet 2014年

2
请记住,如果您在Procfile中列出了其他进程类型,则还需要将其设置为零。
user3344977 '16

173

http://devcenter.heroku.com/articles/maintenance-mode

如果您要部署大型迁移或需要在一段时间内禁用对应用程序的访问,则可以使用Heroku的内置维护模式。它将为所有访问者提供一个静态页面,同时仍允许您运行rake任务或控制台命令。

$ heroku maintenance:on
Maintenance mode enabled.

然后

$ heroku maintenance:off
Maintenance mode disabled.

1
我需要关闭我的Heroku应用程序以测试监视服务(Pingdom)。似乎没有一种方法可以完全停止应用程序而不破坏它,维护模式返回HTTP状态503,因此适合触发监视服务。
2012年

39

转到heroku上的仪表板。选择应用。有一个测功机部分。只需将测功机的滑块向下拉(测功机的减少在左侧),使其达到您要运行的测功机的数量。滑块变为0。然后保存您的更改。繁荣。

根据下面的评论:有一个铅笔图标需要单击以完成此操作。我尚未检查-但请将其放在此处以防万一。


5
嗯谢谢 在较新的仪表板中,您首先必须单击铅笔小图标以将应用程序置于编辑模式,然后才能使用滑块。
mwp 2015年

30

您可能需要更加具体,并指定应用程序名称(这是您在heroku中拥有的应用程序的名称)。例如:

heroku ps:scale web=0 --app myAppName 

否则,您可能会收到以下消息:

 % heroku ps:scale web=0
Scaling dynos... failed
 !    No app specified.
 !    Run this command from an app folder or specify which app to use with --app APP.


6

您可以使用管理面板中的启用维护模式来禁用该应用程序。

  • 转到设置标签。
  • 在删除应用程序之前的底部。启用维护模式。请参见下面的屏幕截图。

在此处输入图片说明


简单易用,优雅。
Tomer,

1
维护模式不会停止dyno,而只是阻止所有传入的HTTP请求。如果您正在运行某些后台进程,它将继续运行。参见Heroku文档:devcenter.heroku.com/articles/maintenance-mode
Antoine Beloeuvre

3

如果您使用的是eclipse插件,请在“我的Heroku应用程序”中双击应用程序名称。在“进程”选项卡中,按“缩放”按钮。将会弹出一个小窗口。增加/减少计数,然后说确定。


2

删除您的Heroku应用

适用于希望在其Heroku帐户上删除应用程序的用户。有时,当您尝试找出如何删除/删除应用程序时,您最终会在这里。

警告:这是不可逆的!

  • 在此处转到您的Heroku仪表板
  • 选择您要删除的应用。
  • 向下滚动到该应用的设置页面的底部。
  • 按红色的删除应用程序...按钮。

OP明确表示,他们希望“停止在Heroku上运行该应用程序,而不是销毁它”。我仅指出这一点,因为无论出于何种原因,Bing都会将此响应作为答案。
Yoshi Askharoun

谢谢!也许应该将其移至其他区域?
CodeValve

2

要添加到上面的答案中:如果要使用管理面板停止Dyno,则免费层上的当前解决方案:

  1. 开启应用程式
  2. 在“概述”选项卡的“ Dyno形成”部分中,单击“配置Dynos”
  3. 在“免费Dynos”部分所需的行中,单击右侧的铅笔图标
  4. 单击蓝色的开/关控件,然后单击“确认”

希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.