module Rollbar::Delayed

Attributes

wrapped[RW]

Public Class Methods

build_job_data(job) click to toggle source
# File lib/rollbar/plugins/delayed_job/plugin.rb, line 77
def self.build_job_data(job)
  return nil unless ::Rollbar.configuration.report_dj_data

  JobData.new(job).to_hash
end
invoke_job_callback() click to toggle source
# File lib/rollbar/plugins/delayed_job/plugin.rb, line 48
def self.invoke_job_callback
  proc do |job, *args, &block|
    begin
      block.call(job, *args)
    rescue StandardError => e
      report(e, job)

      raise e
    end
  end
end
report(e, job) click to toggle source
# File lib/rollbar/plugins/delayed_job/plugin.rb, line 60
def self.report(e, job)
  return if skip_report?(job)

  data = build_job_data(job)

  ::Rollbar.scope(:request => data)
           .error(e, :use_exception_level_filters => true)
end
skip_report?(job) click to toggle source
# File lib/rollbar/plugins/delayed_job/plugin.rb, line 69
def self.skip_report?(job)
  handler = ::Rollbar.configuration.async_skip_report_handler

  return handler.call(job) if handler.respond_to?(:call)

  job.attempts < ::Rollbar.configuration.dj_threshold
end
wrap_worker() click to toggle source
# File lib/rollbar/plugins/delayed_job/plugin.rb, line 34
def self.wrap_worker
  return if wrapped

  ::Delayed::Worker.plugins << RollbarPlugin

  self.wrapped = true
end
wrap_worker!() click to toggle source
# File lib/rollbar/plugins/delayed_job/plugin.rb, line 42
def self.wrap_worker!
  self.wrapped = false

  wrap_worker
end