module Rack::Cargo::RequestExecutor
Public Class Methods
call(_request, state)
click to toggle source
# File lib/rack/cargo/request_executor.rb, line 7 def call(_request, state) app = state.fetch(:app) request_env = state.fetch(:request_env) status, headers, body = with_timeout(Rack::Cargo.config.timeout) do app.call(request_env) end body.close if body.respond_to?(:close) state[:app_response] = { status: status, headers: headers, body: body } end
timeout_response()
click to toggle source
# File lib/rack/cargo/request_executor.rb, line 30 def timeout_response [504, {}, ["{}"]] end
with_timeout(seconds, &block)
click to toggle source
# File lib/rack/cargo/request_executor.rb, line 24 def with_timeout(seconds, &block) Timeout.timeout(seconds, &block) rescue Timeout::Error timeout_response end