Module: Massive::Retry

Extended by:
ActiveSupport::Concern
Included in:
Job
Defined in:
lib/massive/retry.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#retrying(&block) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/massive/retry.rb', line 17

def retrying(&block)
  self.retries = 0

  begin
    block.call
  rescue Massive::Cancelled, SignalException
    # re-raise cancelled and signal exceptions since they are not an actual error
    raise
  rescue StandardError => e
    self.retries += 1

    if self.retries < self.class.maximum_retries
      Kernel.sleep self.class.retry_interval
      retry
    else
      raise e
    end
  end
end