module Airbrake::Rails::ActiveJob

Enables support for exceptions occurring in ActiveJob jobs.

Public Class Methods

notify_airbrake(exception, job) click to toggle source
# File lib/airbrake/rails/active_job.rb, line 9
def self.notify_airbrake(exception, job)
  notice = Airbrake.build_notice(exception)
  notice[:context][:component] = 'active_job'
  notice[:context][:action] = job.class.name
  notice[:params].merge!(job.serialize)

  Airbrake.notify(notice)

  raise exception
end
perform(job, block) click to toggle source
# File lib/airbrake/rails/active_job.rb, line 20
def self.perform(job, block)
  timing = Airbrake::Benchmark.measure do
    block.call
  end
rescue StandardError => exception
  Airbrake.notify_queue(
    queue: job.class.name,
    error_count: 1,
    timing: 0.01,
  )
  raise exception
else
  Airbrake.notify_queue(
    queue: job.class.name,
    error_count: 0,
    timing: timing,
  )
end