在Rails应用中,我使用rack-timeout
设置超时请求的时间超过30秒。
奇怪的是,有些情况rack-timeout
进入的时间非常晚,请求的整体服务时间最长可达7-30分钟。
这里有3个例子来说明这种奇怪的情况:
这是我的中间件堆栈:
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路由器相同)是否有问题?
感谢您的任何想法!