解释机架超时服务时间

时间:2018-06-11 16:40:36

标签: ruby-on-rails heroku timeout rack

在Rails应用中,我使用rack-timeout设置超时请求的时间超过30秒。

奇怪的是,有些情况rack-timeout进入的时间非常晚,请求的整体服务时间最长可达7-30分钟。

这里有3个例子来说明这种奇怪的情况:

enter image description here enter image description here enter image description here

这是我的中间件堆栈:

use Raven::Rack
use HireFire::Middleware
use ActionDispatch::SSL
use Rack::Sendfile
use HeaderDelete
use ActionDispatch::Static
use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x0000000002d643e8>
use Rack::Timeout
use Rack::Runtime
use Rack::MethodOverride
use ActionDispatch::RequestId
use LoggingMiddleware
use Rails::Rack::Logger
use Chewy::Railtie::RequestStrategy
use ActionDispatch::ShowExceptions
use ActionDispatch::DebugExceptions
...

鉴于rack-timeout位于堆栈的早期,如何解释某些请求超出其限制?

我认为它可能与IO块中的超时有关(详见here),但不能解释为什么第一次记录state=ready来自rack-timeout在Heroku路由器的H12后27分钟(上面的例子1和3)?

rack-timeout服务超时设置为30秒(与Heroku路由器相同)是否有问题?

感谢您的任何想法!

0 个答案:

没有答案