如何解决heroku请求超时错误

时间:2021-05-18 07:18:26

标签: node.js heroku server webrtc

在 Heroku 上部署 node js 应用程序时,我收到一个请求超时错误,我不知道有什么方法可以解决这个问题,因为无法检测哪个请求耗时超过 30 秒(就我而言)知道)完成。

由于该应用程序是一个简单的 webrtc 视频通话应用程序,我只向信令服务器发送报价和答复,因此此处不涉及数据库,也无需将任何文件上传到服务器。

>

我对哪种方法花费的时间超过 30 秒感到非常困惑,我不知道如何调试它。因此,如果您有任何调试或解决此问题的方法,请帮助我。

Heroku 日志

2021-05-18T06:44:52.612098+00:00 app[web.1]: Listening on port 3000...
2021-05-18T06:44:54.026643+00:00 heroku[web.1]: State changed from starting to up
2021-05-18T06:45:25.592360+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=infinite-spire-30775.herokuapp.com request_id=7f7f97cb-a18c-4e0b-afbd-fd360750e820 fwd="223.233.121.52" dyno=web.1 connect=0ms service=30001ms status=503 bytes=0 protocol=https
2021-05-18T06:45:44.620505+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=infinite-spire-30775.herokuapp.com request_id=b5381208-43bb-482f-a52e-944caceeac4e fwd="223.233.121.52" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2021-05-18T06:46:19.170997+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=infinite-spire-30775.herokuapp.com request_id=832319e9-5d66-4c35-8be1-78e6ed8cd8e0 fwd="223.233.121.52" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2021-05-18T06:46:50.490093+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/favicon.ico" host=infinite-spire-30775.herokuapp.com request_id=863c9f21-5920-4493-bee5-9f88dae78bd3 fwd="223.233.121.52" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以将 New Relic 安装到您的 heroku 应用程序上,它可以深入了解有关哪些请求需要时间才能完成的一些详细信息。 Add New Relic to Heroku app.

答案 1 :(得分:0)

问题来了

2021-05-18T06:44:52.612098+00:00 app[web.1]: Listening on port 3000...

您的应用程序侦听端口 3000(默认 NodeJS),这在 Heroku 上不起作用:您需要绑定到 Heroku 分配的端口,您可以在 env 变量 $PORT 中找到该端口。
请参阅Heroku Nodejs documentation