Module: Kaal::DelayedJob::DispatchFailureLogger

Defined in:
lib/kaal/delayed_job/dispatch_failure_logger.rb

Overview

Shared delayed-dispatch failure logging for at-most-once dispatches.

Class Method Summary collapse

Class Method Details

.log_claimed_dispatch_failure(logger:, job:, error:) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/kaal/delayed_job/dispatch_failure_logger.rb', line 13

def log_claimed_dispatch_failure(logger:, job:, error:)
  return unless logger

  message = "Delayed job #{job.fetch(:job_id)} dispatch failed after claim; " \
            "job_class=#{job.fetch(:job_class).inspect} " \
            "queue=#{job[:queue].inspect} " \
            "run_at=#{job.fetch(:run_at)} " \
            'job was already claimed and will not be retried: ' \
            "#{error.class}: #{error.message}"

  if logger.respond_to?(:fatal)
    logger.fatal(message)
  else
    logger.error(message)
  end
end