Heroku错误H13

时间:2014-10-27 21:23:48

标签: ruby-on-rails ruby heroku

我现在在&自从我将应用程序部署到heroku以来的过去几天。它发生在我开始使用unicorn作为服务器之前以及之后。我有时可以使用heroku run rake db:migrate然后使用heroku restart将其重新启动并运行,但这只会将其修复几个小时并再次中断。至于网页,它说"应用程序错误"。日志不是很有用,但每次出现此错误时都会说出来:

[2014-10-27T21:13:31.675956 #2] ERROR -- : worker=1 PID:8 timeout (16s > 15s), killing
[2014-10-27T21:13:31.731646 #14]  INFO -- : worker=1 ready
[2014-10-27T21:13:31.694690 #2] ERROR -- : reaped #<Process::Status: pid 8 SIGKILL (signal 9)> worker=1
at=error code=H13 desc="Connection closed without response" method=GET

我只是使用heroku的免费版本,我想确保它在升级之前有效,但这是我此时唯一的选择吗?

此外,我可以使用rails serverforeman start在本地完美地运行此功能。

1 个答案:

答案 0 :(得分:5)

Heroku文档说this about H13

  

H13 - 连接无响应

     

当web dyno中的进程接受连接但是然后关闭套接字而不向其写任何内容时,抛出此错误。

     

可能发生这种情况的一个示例是,Unicorn Web服务器配置的超时时间短于30秒,并且在超时发生之前工作人员尚未处理请求。在这种情况下,Unicorn会在写入任何数据之前关闭连接,从而生成H13。

有几个排队,你有一个关于15s后进程超时的错误:

ERROR -- : worker=1 PID:8 timeout (16s > 15s), killing   

Heroku帮助有一个关于timeout settings的部分:

  

根据您的语言,您可以在应用服务器级别设置超时。一个例子是Ruby的独角兽。在Unicorn中,您可以像config/unicorn.rb这样设置超时:

     

timeout 15

     

一旦Unicorn开始处理请求,计时器将开始,如果超过15秒,则主进程将向工作人员发送SIGKILL但不会引发异常。

匹配日志中的错误消息。我调查一下。