【发布时间】:2020-08-17 02:19:51
【问题描述】:
我正在尝试在没有 Web 进程的 Heroku 上运行 Worker 进程。
这是一个小型节点快递应用程序。但除非我有一个 Web 进程正在运行,否则它不起作用。
我有一个带有
的 Procfileworker node server.js
但我得到了这个错误
heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/
我想将它作为工作进程运行,因为工作人员不受 30 秒超时限制,而且应该更有效率。此端点仅用于处理与我们的主 API 分开的 1 个密集型任务,因此将其设置为工作人员是有意义的。
按照这个
https://help.heroku.com/PFSOIDTR/why-am-i-seeing-h12-request-timeouts-high-response-times-in-my-app
问题 2:我是否将长时间运行的任务委派为后台作业?如果 你不能让你的代码运行得更快,你只需要更多的时间 (即处理图像、解析文档、进行 API 调用等),您 可以在工人测功机上将它们作为后台作业运行。工人测功机不 面对与网络测功机相同的 30 秒超时,使它们变得完美 举重。
我在解决这个问题时发现的所有问题都说扩展到 web:1
所以这让我相信 express 不能仅作为工作人员运行,而必须是 Web 进程?
【问题讨论】: