如何找出导致heroku出现h12超时错误的原因?
它在不同的页面/控制器上随机发生。
这是我从日志中得到的错误
Processing by UsersController#new as HTML
2013-08-15T13:08:54.718157+00:00 app[web.1]: Started GET "/signup" for 105.226.239.198 at 2013-08-15 13:08:54 +0000
2013-08-15T13:08:54.744390+00:00 app[web.1]: Rendered communal/_error_messages.html.erb (0.6ms)
2013-08-15T13:09:24.714225+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path=/signup host=www.goodwordlabs.com fwd="105.226.239.198" dyno=web.1 connect=3ms service=30000ms status=503 bytes=0
2013-08-15T13:09:25.518168+00:00 app[web.1]: E, [2013-08-15T13:09:25.517428 #2] ERROR -- : worker=0 PID:5 timeout (31s > 30s), killing
2013-08-15T13:09:25.554402+00:00 app[web.1]: E, [2013-08-15T13:09:25.554166 #2] ERROR -- : reaped #<Process::Status: pid 5 SIGKILL (signal 9)> worker=0
2013-08-15T13:09:25.980010+00:00 app[web.1]: I, [2013-08-15T13:09:25.979551 #26] INFO -- : worker=0 ready
2013-08-15T13:08:51.088169+00:00 heroku[router]: at=info method=GET path=/assets/clients/client1-03dfd2afecf092e15b9e3350d04acdc6.png host=www.goodwordlabs.com fwd="105.226.239.198" dyno=web.1 connect=2ms service=7ms status=304 bytes=0
以下是您应该如何进行
- 安装一个应用程序监控解决方案newrelic。它会给你一个超时的URL列表。新遗迹是付费的,但也有免费版本的新遗迹
- 现在,尝试隔离&再现超时错误。因为如果你不能复制它,你就无法修复它
您可以尝试从heroku控制台向站点(www.goodwordlabs.com)发送请求。用这个运行heroku控制台heroku run rails console
或者尝试从终端的Curl发送具有相同参数的请求