是否有办法在单个Heroku应用程序容器中配置多个工作进程和/或Web进程?还是必须将其拆分为多个Heroku应用程序?
例如:
worker: node capture.js
worker: node process.js
worker: node purge.js
web: node api.js
web: node web.js
是否有办法在单个Heroku应用程序容器中配置多个工作进程和/或Web进程?还是必须将其拆分为多个Heroku应用程序?
例如:
worker: node capture.js
worker: node process.js
worker: node purge.js
web: node api.js
web: node web.js
所有进程必须具有唯一的名称。此外,web
和 worker
这两个名称没有特殊含义和意义。
唯一一个带有重要名称的进程是 web
进程,正如 Heroku 文档所述:
web
进程类型很特殊,因为它是唯一一个从 Heroku 路由器接收 HTTP 流量的进程类型。其他进程类型可以任意命名。-- (https://devcenter.heroku.com/articles/procfile)
因此,您需要像这样的 Procfile
:
capture: node capture.js
process: node process.js
purge: node purge.js
api: node api.js
web: node web.js
您可以单独对每个进程进行缩放:
$ heroku ps:scale purge=4
/api/*
请求流式传输到“api”工作进程,并将所有其他请求流式传输到“app”工作进程。当有多个这些工作进程的实例时,这可能会变得有点复杂;然后您需要实现或npm-install负载均衡器。或者,您可以运行多个Heroku应用程序,但现在存储库组织变得有点复杂(子模块?)。 - Dan Rossworker
的dyno,它们各自使用不同的PHP文件,并且一个单独的web
dyno。如果你数一下,应该有3个dyno,但只有两个被激活了。worker
dyno正在运行第二个声明中的PHP脚本,但当我将它们命名为worker1
和worker2
时,我成功地启动了所有我想使用的dyno。 - Chris Rutherfurd