如何通过 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.2Rails 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?

部署到 Heroku 时,如何在 Procfile 中导入带有 Gunicorn 的自定义模块?

Heroku 服务器中 Procfile 和 Procfile.Windows 之间的区别

Heroku,Java,Procfile,找不到或加载主类

Heroku 在错误的目录中寻找 Procfile