class Upfluence::Utils::Thrift::Middleware::Timeout

Public Class Methods

new(app, duration) click to toggle source
# File lib/upfluence/utils/thrift/middleware/timeout.rb, line 6
def initialize(app, duration)
  @app = app
  @duration = duration
end

Public Instance Methods

method_missing(method, *args, &block) click to toggle source
# File lib/upfluence/utils/thrift/middleware/timeout.rb, line 11
def method_missing(method, *args, &block)
  ::Timeout.timeout(@duration) { @app.send(method, *args, &block) }
rescue ::Timeout::Error
  raise ::Thrift::ApplicationException.new(
    ::Thrift::ApplicationException::INTERNAL_ERROR,
    'Timeout reached'
  )
end