class DispatchRider::Handlers::Base

Attributes

raw_message[R]

Public Class Methods

set_default_retry( amount ) click to toggle source
# File lib/dispatch-rider/handlers/base.rb, line 10
def set_default_retry( amount )
  define_method(:retry_timeout) do
    amount
  end
end

Public Instance Methods

do_process(raw_message) click to toggle source
# File lib/dispatch-rider/handlers/base.rb, line 19
def do_process(raw_message)
  with_named_process(raw_message) do
    @raw_message = raw_message
    process(raw_message.body)
  end
rescue Exception => e
  self.retry if retry_on_failure?
  raise e
end
process(message) click to toggle source
# File lib/dispatch-rider/handlers/base.rb, line 29
def process(message)
  raise NotImplementedError, "Method 'process' not overridden in subclass!"
end

Protected Instance Methods

extend_timeout(timeout) click to toggle source
# File lib/dispatch-rider/handlers/base.rb, line 35
def extend_timeout(timeout)
  raw_message.extend_timeout(timeout)
end
retry() click to toggle source
# File lib/dispatch-rider/handlers/base.rb, line 43
def retry
  timeout = retry_timeout
  case timeout
  when :immediate
    return_to_queue
  else
    extend_timeout(timeout)
  end
end
retry_on_failure?() click to toggle source
# File lib/dispatch-rider/handlers/base.rb, line 53
def retry_on_failure?
  respond_to? :retry_timeout
end
return_to_queue() click to toggle source
# File lib/dispatch-rider/handlers/base.rb, line 39
def return_to_queue
  raw_message.return_to_queue
end