module Airbrake::Rails::ActiveJob

def self.notify_airbrake(exception, job)

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

def self.perform(job, block)

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