File: timeout.rb

package info (click to toggle)
ruby-slowpoke 0.3.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 96 kB
  • sloc: ruby: 99; makefile: 7
file content (18 lines) | stat: -rw-r--r-- 431 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
module Slowpoke
  class Timeout
    def initialize(app, service_timeout:)
      @app = app
      @service_timeout = service_timeout
      @middleware = {}
    end

    def call(env)
      service_timeout = @service_timeout.call(env)
      if service_timeout
        (@middleware[service_timeout] ||= Rack::Timeout.new(@app, service_timeout: service_timeout)).call(env)
      else
        @app.call(env)
      end
    end
  end
end