Node.js 如何避免heroku上的请求超时?

Node.js 如何避免heroku上的请求超时?,node.js,express,heroku,Node.js,Express,Heroku,如果没有响应,我需要强制我的express.js应用程序在给定时间后“中止”,以避免heroku H12超时导致我的dyno崩溃(需要手动重启) 我试图添加req.setTimeout(15000),但它只能在本地工作。在heroku上,我的请求继续等待超过15秒限制的响应,一旦达到heroku 30秒限制,dyno崩溃 有什么建议吗?您可以尝试使用快速超时中间件来超时请求: npm install connect-timeout 有关详细信息:您无法配置超时。如果您的应用程序完成其工作所需时

如果没有响应,我需要强制我的express.js应用程序在给定时间后“中止”,以避免heroku H12超时导致我的dyno崩溃(需要手动重启)

我试图添加
req.setTimeout(15000)
,但它只能在本地工作。在heroku上,我的请求继续等待超过15秒限制的响应,一旦达到heroku 30秒限制,dyno崩溃


有什么建议吗?

您可以尝试使用快速超时中间件来超时请求:

npm install connect-timeout

有关详细信息:

您无法配置超时。如果您的应用程序完成其工作所需时间超过30秒,则将调用超时

为了避免这种情况,您应该在30秒内发送一些响应。您可以通过创建背景动态来实现它

请遵循此文档了解更多详细信息


该应用程序的用途是什么?它是一个网站还是一个工作者,如脚本或机器人?这主要是一个apiConsider队列任务,往往需要很长时间,并使用一个单独的工作者动态层来处理队列作业(没有时间限制)。它似乎不起作用。我的dyno在30秒后仍会崩溃。您应该将任务移动到后台,这往往需要很长时间。您可以添加辅助dyno以执行长任务,因为heroku web dyno上有30秒的限制。
const timeout = require('connect-timeout')
app.use(timeout('15s'))