【发布时间】:2020-12-31 03:54:53
【问题描述】:
如何使用 Heroku API 完全停止 Heroku dyno 使其不会重新启动?
我已将 Heroku 设置为运行 Python 脚本,该脚本始终循环且从不退出以检查传感器。这个 main.py 脚本通过我的 Procfile 作为 Dyno 工作者运行。现在,它总是按预期运行。它甚至会在崩溃时重新启动,这对这个应用程序也很有帮助。
使用Heroku API,我希望能够完全停止这个过程。这不会经常发生,只是一个故障安全终止开关。我可以通过登录 Heroku 并单击“资源”选项卡中的编辑按钮并关闭工作人员来停止 dyno 工作人员。但是,我想通过 API 关闭 Worker。
我尝试了以下 API 调用(通过 Postman),它们都停止了当前进程,但几秒钟后,Heroku 再次启动了 worker。
停止当前的 Dyno
POST https://api.heroku.com/apps/<app_id>/dynos/worker.1/actions/stop
删除/重新启动应用中的所有测功机
DELETE https://api.heroku.com/apps/<app_id>/dynos
另外,我可以将应用程序置于维护模式,但这只会停止 HTTP 流量,而不是 Dynos
PATCH https://api.heroku.com/apps/<app_id>
with payload of {"maintenance":true}
一个选项是完全删除应用程序,但这对我来说有点过分,因为它还会删除所有日志文件,并且重新设置它会很痛苦。
DELETE https://api.heroku.com/apps/<app_id>
有没有办法通过 API 完全停止 Dyno 或应用程序,直到我再次手动启动它?
【问题讨论】:
标签: python heroku heroku-api