提供预编译资源时 Heroku H12 请求超时错误

use*_*214 5 heroku

我正在 Heroku 上运行 Rails 应用程序。我每隔几个小时就会收到 H12 请求超时错误,如下所示:

heroku/router:  at=error code=H12 desc="Request timeout" method=GET path="/assets/application-c280172e4ef44cbe29d1fc72c6dfcd00.js" host=www.justvacay.com request_id=8e570b7c-0470-47b7-9f3b-41c1158b448d fwd="66.249.79.111" dyno=web.1 connect=4ms service=30005ms status=503 bytes=0 
Run Code Online (Sandbox Code Playgroud)

在我安装 unicorn-worker-killer 后,这种情况开始发生。

有谁知道如何解决这一问题?

小智 1

Heroku 处理 HTTP 请求的时间不会超过 30 秒,因此,如果您尝试托管一个执行繁重任务的应用程序(例如,访问工作 API 或其他需要很长时间的任务),最好创建工作线程 dyno可以在后台进行繁重的编码。

以下是执行此操作的步骤:
https://devcenter.heroku.com/articles/background-jobs-queueing

另一个(潜在的)解决方案是进入需要很长时间的应用程序并在每个函数中创建会话,以避免 heroku 时间耗尽。以下是如何执行此操作的示例:

https://help.heroku.com/AXOSFIXN/why-am-i-getting-h12-request-timeout-errors-in-nodejs

但这并不能 100% 保证有效。

希望这对您有所帮助并祝您好运!