Class: Pliny::Middleware::Timeout

Inherits:
Object
  • Object
show all
Defined in:
lib/pliny/middleware/timeout.rb

Overview

Requires that Pliny::Middleware::RescueErrors is nested above it.

Defined Under Namespace

Classes: RequestTimeout

Instance Method Summary collapse

Constructor Details

#initialize(app, options = {}) ⇒ Timeout

Returns a new instance of Timeout.



6
7
8
9
# File 'lib/pliny/middleware/timeout.rb', line 6

def initialize(app, options={})
  @app = app
  @timeout = options[:timeout] || 45
end

Instance Method Details

#call(env) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/pliny/middleware/timeout.rb', line 11

def call(env)
  ::Timeout.timeout(@timeout, RequestTimeout) do
    @app.call(env)
  end
rescue RequestTimeout
# Pliny::Sample.measure "requests.timeouts"
  raise Pliny::Errors::ServiceUnavailable, "Timeout reached."
end