Heroku错误H13

Eli*_*jah 6 ruby ruby-on-rails heroku

自从我将应用程序部署到heroku以来,过去几天我一直在开启和关闭此错误.它发生在我开始使用unicorn作为服务器之前以及之后.我有时会拿回来和运行使用heroku run rake db:migrateheroku 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
Run Code Online (Sandbox Code Playgroud)

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

另外我能够在当地完全没有使用任何运行此rails serverforeman start.

Sub*_*ial 5

Heroku医生说这是关于H13:

H13 - 连接关闭但没有响应

当web dyno中的进程接受连接但随后关闭套接字而不向其写入任何内容时,将引发此错误.

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

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

ERROR -- : worker=1 PID:8 timeout (16s > 15s), killing   
Run Code Online (Sandbox Code Playgroud)

Heroku帮助有一个关于超时设置的部分:

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

timeout 15

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

这与您日志中的错误消息相匹配.我会调查一下.

  • 以利,这种情况有什么变化吗?我偶尔会遇到这个错误,但似乎在我开始排除故障的时候就消失了.我似乎最有可能在应用程序闲置一天左右之后发生,几乎就像是部分睡着了. (4认同)