Class: SolidQueuePlus::RetryMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_queue_plus/retry_middleware.rb

Constant Summary collapse

MAX_RETRIES =
5

Instance Method Summary collapse

Instance Method Details

#call(job) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/solid_queue_plus/retry_middleware.rb', line 5

def call(job)
  yield
rescue => e
  attempts = job.["retries"].to_i
  if attempts < MAX_RETRIES
    delay = 2**attempts
    job.["retries"] = attempts + 1
    job.enqueue(wait: delay.seconds)
  else
    Notifier.notify_failure(job, e)
    raise e
  end
end