Heroku上NodeJs应用程序中的H12请求超时错误?
Posted
技术标签:
【中文标题】Heroku上NodeJs应用程序中的H12请求超时错误?【英文标题】:H12 request timeout error in NodeJs Application on Heroku? 【发布时间】:2020-01-26 09:09:39 【问题描述】:我已经在 Hobby Dynos 的 Heroku 上部署了我的 NodeJs 应用程序,并使用 MongoDB 沙箱(mlab)作为数据库。我有 1000 多个用户使用这个应用程序,100-200 将是并发用户。 Heroku 有时会为 Rest API 显示 H12“请求超时”错误。
我已将 Hobby Dynos 升级到 Standard-1x Dynos,但有时它仍然可以正常工作,但对于某些请求,它会显示 H12“请求超时”。 我认为这可能是由于每秒应用程序和请求的高流量。一个运行良好的 API 会在一段时间后发送请求超时。请帮我解决这个问题。
【问题讨论】:
【参考方案1】:这里的问题是“H12”。如果没有发送响应,Heroku 会在 30 秒后自动终止请求。
在您的情况下可能出现的问题似乎是某些中间件或某些端点阻塞了事件循环或某些第三方请求花费了太多时间。
在你的情况下,多个端点都面临这个问题,所以看起来像是阻塞问题。
节点在单线程上工作
因此,您检查是否有任何函数使用了任何同步版本,例如 DB 请求或任何其他以同步方式使用的服务。使用 promise 或 async-await 使其成为异步
谢谢。让我知道它是否有帮助
【讨论】:
以上是关于Heroku上NodeJs应用程序中的H12请求超时错误?的主要内容,如果未能解决你的问题,请参考以下文章
使用 db.query 方法 node.js 时出现 Heroku H12“请求超时”错误
Heroku Django 应用程序错误:工作人员超时问题 (H12)
NodeJS 应用程序构建成功(Heroku),但启动时 Heroku 中的应用程序错误
在heroku上部署Nodejs+Express+React+Webpack应用