class Sidekiq::Rescue::ServerMiddleware
def calculate_reschedule_time(delay, rescue_counter)
def calculate_reschedule_time(delay, rescue_counter) # NOTE: we use the retry counter to increase the jitter # so that the jobs don't retry at the same time # inspired by sidekiq https://github.com/sidekiq/sidekiq/blob/73c150d0430a8394cadb5cd49218895b113613a0/lib/sidekiq/job_retry.rb#L188 jitter = rand(10) * rescue_counter delay = delay.call(rescue_counter) if delay.is_a?(Proc) Time.now.to_f + delay + jitter end