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