class Epilog::Rails::ActiveJobSubscriber

Public Instance Methods

enqueue(event) click to toggle source
# File lib/epilog/rails/active_job_subscriber.rb, line 6
def enqueue(event)
  info { event_hash('Enqueued job', event) }
end
enqueue_at(event) click to toggle source
# File lib/epilog/rails/active_job_subscriber.rb, line 10
def enqueue_at(event)
  enqueue(event)
end
perform(event) click to toggle source
# File lib/epilog/rails/active_job_subscriber.rb, line 21
def perform(event)
  info do
    event_hash('Performed job', event).merge(
      metrics: {
        job_runtime: event.duration
      }
    )
  end
  pop_context
end
perform_start(event) click to toggle source
# File lib/epilog/rails/active_job_subscriber.rb, line 14
def perform_start(event)
  push_context(job: short_job_hash(event.payload[:job]))
  return unless config.double_job_logs

  info { event_hash('Performing job', event) }
end

Private Instance Methods

adapter_name(adapter) click to toggle source
# File lib/epilog/rails/active_job_subscriber.rb, line 63
def adapter_name(adapter)
  adapter = adapter.class unless adapter.is_a?(Class)
  adapter.name
end
event_hash(message, event) click to toggle source
# File lib/epilog/rails/active_job_subscriber.rb, line 34
def event_hash(message, event)
  {
    message: message,
    job: job_hash(event.payload[:job]),
    adapter: adapter_name(event.payload[:adapter])
  }
end
format_time(time) click to toggle source
# File lib/epilog/rails/active_job_subscriber.rb, line 59
def format_time(time)
  Time.at(time).utc.strftime(Epilog::Formatter::DEFAULT_TIME_FORMAT)
end
job_hash(job) click to toggle source
# File lib/epilog/rails/active_job_subscriber.rb, line 42
def job_hash(job)
  {
    class: job.class.name,
    id: job.job_id,
    queue: job.queue_name,
    arguments: job.arguments,
    scheduled_at: job.scheduled_at ? format_time(job.scheduled_at) : nil
  }
end
short_job_hash(job) click to toggle source
# File lib/epilog/rails/active_job_subscriber.rb, line 52
def short_job_hash(job)
  {
    class: job.class.name,
    id: job.job_id
  }
end