【问题标题】:Heroku H18 503 "Request Interrupted" errorsHeroku H18 503“请求中断”错误
【发布时间】:2014-12-25 23:39:06
【问题描述】:

我看到很多这样的。我明白他们的意思,这就是为什么我不明白为什么会这样。非常不一致,似乎不是超时问题。

相关资料:

  • Php/laravel/Postgres Heroku
  • 我强制使用 SSL
  • 我将 / 路由到 /anotherroute
  • 我自己无法与任何客户进行复制
  • 路径并不总是相同的,有时只是简单的资产加载
  • 我没有看到任何应用程序错误报告
  • 袜子=​​客户
  • 服务时间始终

一些日志数据:

10 月 29 日 18:22:12 myapp-web-production heroku/router: sock=client at=error code=H18 desc="Request Interrupted" method=GET path="/aroute" host=... request_id= ... fwd="##.##.##.###" dyno=web.1 connect=2ms service=34ms status=503 bytes=3816

10 月 29 日 18:22:13 myapp-web-production heroku/router: sock=client at=error code=H18 desc="Request Interrupted" method=GET path="/aroute" host=... request_id= ... fwd="##.##.##.###" dyno=web.1 connect=1ms service=538ms status=503 bytes=3822

10 月 29 日 18:22:14 myapp-web-production heroku/router: sock=client at=error code=H18 desc="Request Interrupted" method=GET path="/aroute" host=... request_id= ... fwd="##.##.##.###" dyno=web.1 connect=1ms service=406ms status=503 bytes=13927

我被困住了。任何帮助将不胜感激。

【问题讨论】:

    标签: php laravel heroku http-status-code-503


    【解决方案1】:

    我认为sock=client 属性意味着客户端在服务器可以响应之前刚刚断开连接。我们可以通过向处理程序添加人为的 10 秒延迟来重现这一点,然后,例如,在 Web 浏览器中请求端点并在服务器响应之前将其关闭。

    我们只是从我们的日志中过滤出所有带有sock=client 的 H18。

    【讨论】:

    • 这也是我从 Heroku 得到的反馈。鉴于任何请求的响应从不超过 1000 毫秒,看到有多少客户端断开连接,这有点令人惊讶。谢谢你的答案。
    • @Nick:我也很惊讶在我们的案例中有多少。您是否曾经对此进行过更深入的研究,或者您是否只是接受它并继续前进?我想知道如何真正深入挖掘那里......
    • @hendrikbeck 我只是接受了它,因为我们从未收到用户的任何问题报告,也从未亲眼目睹任何问题。如果我要花时间进行调查,我会运行像“Charles”这样的网络诊断程序,限制连接并跟踪日志以尝试重现问题。这可能是一个简单的分析(谷歌、woopra 等)在移动网络丢失时轮询断开连接。
    • 有没有办法在代码上解决这个问题,以便应用程序重试请求?它偶尔发生在我的登录 API 上,我希望应用在发生这种情况时自动重试。
    • @Yko 您应该能够检测到客户端断开连接,然后从那里重试。如果这确实是客户端问题,那么服务器将无法重试任何操作 - 客户端将不得不这样做。
    猜你喜欢
    • 2016-11-23
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2017-07-07
    • 2018-01-03
    • 2020-08-27
    相关资源
    最近更新 更多