lib/dispatch-rider/handlers/base.rb in dispatch-rider-2.1.0 vs lib/dispatch-rider/handlers/base.rb in dispatch-rider-2.2.0

- old
+ new

@@ -1,56 +1,58 @@ +# frozen_string_literal: true + module DispatchRider module Handlers class Base include NamedProcess extend InheritanceTracking - + class << self - def set_default_retry( amount ) + def set_default_retry( amount ) define_method(:retry_timeout) do amount end end end - + attr_reader :raw_message 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 self.retry_on_failure? + self.retry if retry_on_failure? raise e end def process(message) raise NotImplementedError, "Method 'process' not overridden in subclass!" end - + protected - + def extend_timeout(timeout) raw_message.extend_timeout(timeout) end - + def return_to_queue raw_message.return_to_queue end - + def retry timeout = retry_timeout case timeout when :immediate return_to_queue else extend_timeout(timeout) end end - + def retry_on_failure? - self.respond_to? :retry_timeout + respond_to? :retry_timeout end end end end