class Airbrake::Sidekiq::RetryableJobsFilter

@since v7.3.0
by Sidekiq
Filter that can ignore notices from jobs that failed but will be retried

def call(notice)

def call(notice)
  job = notice[:params][:job]
  notice.ignore! if retryable?(job)
end

def initialize(max_retries: nil)

def initialize(max_retries: nil)
  @retries_before_notify = max_retries
end

def max_attempts_for(job)

def max_attempts_for(job)
  if @retries_before_notify
    @retries_before_notify
  elsif job['retry'].is_a?(Integer)
    job['retry']
  else
    max_retries
  end
end

def max_retries

def max_retries
  @max_retries ||= begin
    config = SIDEKIQ_GTE_7_0_0 ? ::Sidekiq.default_configuration : ::Sidekiq.options
    config[:max_retries] || DEFAULT_MAX_RETRY_ATTEMPTS
  end
end

def retryable?(job)

def retryable?(job)
  return false unless job && job['retry']
  max_attempts = max_attempts_for(job)
  retry_count = (job['retry_count'] || -1) + 1
  retry_count < max_attempts
end