我在Heroku订阅了一个爱好计划。
该计划的详细信息指定了最多允许10种过程类型。
所以我开发了一个带有以下procfile的应用程序:
backend-dev: node ./backend-dev/backend.js
backend-prod: node ./backend-prod/backend.js
代表2种过程类型的哪种?
但是当我运行它时:
heroku ps:scale backend-dev=1
heroku ps:scale backend-prod=1
我最终得到了两个爱好dynos ...由于该计划还指定了7欧元/月/dyno,我的收费为14欧元。
所以我的问题是:
- 过程类型与dynos有什么区别?
- 我可以在单个dyno中运行2种过程类型吗?
- 我可以按照1个免费的dyno(用于后端 - dev)和1个爱好dyno(用于后端抛物)?
-
考虑使用背景工人的Web应用程序的这个简单示例,因此它具有
web
流程和worker
进程。当这样的应用程序收到大量的网络流量,但是处理很少的背景作业时,您可以增加web
流程的DYNOS数量,但对于worker
流程只有一个DYNO。每个过程也可能具有不同的Dyno大小。您可以将web
进程的Performance-L Dyno和标准1X用于worker
进程,而不是使用更多DYNOS。换句话说,过程类型描述了在一个应用程序中共同工作的不同过程。它们不应该像您的情况一样是不同的应用程序。 -
否。您可以在多个dynos上运行一种过程类型。
-
从技术上讲,您可以在免费的Dyno上运行一个进程,而在Hobby上可以运行另一个过程,但在您的情况下它不起作用。当您升级到专业的Dynos时,所有过程都必须在专业的Dynos上运行。
您的Procfile
都是错误的。您必须具有流程类型名称web
才能接收Web流量。如果您启动当前设置,则将运行两个进程,但是它们将永远不会收到任何Web请求。它在Heroku文档中进行了描述,只有web
流程可以接收Web流量,您只能拥有一个这样的过程。因此,要运行两个版本的应用程序,您需要创建两个不同的Heroku应用程序。理想情况下,您应该允许通过环境变量配置应用程序,以便您可以将相同的代码部署到两个应用程序中。