如何通过 Procfile 在 Heroku 上禁用 Rails web dyno?
Posted
技术标签:
【中文标题】如何通过 Procfile 在 Heroku 上禁用 Rails web dyno?【英文标题】:How to disable Rails web dyno on Heroku via Procfile? 【发布时间】:2015-03-22 12:07:05 【问题描述】:我对 Heroku procfiles 和 Rails 有点怀疑。在你问之前,我目前正在使用 Ruby 2.1.2 和 Rails 4.1.6。
我的项目将仅通过Heroku Scheduler 运行计划任务 - 换句话说,我不想付费运行一个实际上不存在的网站和一个将每 X 分钟执行一次的简单 Rake 任务。
目前我的 procfile 如下:
web:
但是 Heroku 仍在运行 web dyno,正如我在终端上运行 heroku ps
时所看到的那样:
=== web (1X): `bin/rails server -p $PORT -e $RAILS_ENV`
web.1: up 2015/01/23 10:04:31 (~ 27m ago)
那么,我有两个问题(关注第二个):
-
如果我的“web dyno”仍然通过 Heroku Scheduler 与我的计划任务一起运行,我是否会超过 Heroku 的 750 个空闲小时?
如何使用 Procfile 禁用 web dyno?
【问题讨论】:
【参考方案1】:您可以通过 Heroku Web UI 禁用 Web dyno:资源 - Dynos [编辑],关闭 Web(并可能打开调度程序),然后保存。或命令行:heroku ps:scale web=0
。
这将在后续部署中保留,因此 Procfile 定义了如何运行 dyno,而 Heroku 设置定义了要运行的 dyno 以及运行的数量。
【讨论】:
以上是关于如何通过 Procfile 在 Heroku 上禁用 Rails web dyno?的主要内容,如果未能解决你的问题,请参考以下文章
Procfile 在 Heroku 中声明类型 -> (none)
部署到 Heroku 时,如何在 Procfile 中导入带有 Gunicorn 的自定义模块?