我在Heroku订阅了一个Hobby计划。
计划的详细信息指定它最多允许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
我最终得到了两个Hobby Dynos ...... 由于该计划还指定7€/月/ Dyno我收取14欧元/月的费用。
所以我的问题是:
答案 0 :(得分:1)
考虑这个带后台工作者的Web应用程序的简单示例,因此它具有web
进程和worker
进程。当此类应用收到大量网络流量但处理的后台作业非常少时,您可以增加web
进程的动态数量,但worker
进程只有一个dyno。每个过程也可以有不同的dyno大小。您可以在web
进程中使用performance-l dyno,而在worker
进程使用standard-1x,而不是使用更多dynos。换句话说,流程类型描述了在一个应用程序中协同工作的不同流程。它们不应该像你的情况那样是不同的应用程序。
没有。您可以在多个dynos上运行一个Process Type。
从技术上讲,你可以在免费dyno和另一个爱好上运行一个进程,但它不会在你的情况下工作。当您升级到专业dynos时,所有进程必须在专业dynos上运行。
你的Procfile
都错了。您必须具有流程类型名称web
才能接收Web流量。如果您启动当前设置,您将运行两个进程,但它们永远不会收到任何Web请求。在Heroku文档中描述,只有web
进程可以接收Web流量,并且您只能有一个这样的进程。因此,要运行两个版本的应用程序,您需要创建两个不同的Heroku应用程序。理想情况下,您应该允许通过环境变量配置您的应用程序,以便您可以将相同的代码部署到这两个应用程序。