class Bugsnag::Bugsnag
Constants
- FRAMEWORK_ATTRIBUTES
Public Class Methods
add_failure_backend()
click to toggle source
Sets up the Resque
failure backend.
# File lib/bugsnag/integrations/resque.rb, line 20 def self.add_failure_backend return if ::Resque::Failure.backend == self # Ensure resque is using a "Multiple" failure backend unless ::Resque::Failure.backend <= ::Resque::Failure::Multiple original_backend = ::Resque::Failure.backend ::Resque::Failure.backend = ::Resque::Failure::Multiple ::Resque::Failure.backend.classes ||= [] ::Resque::Failure.backend.classes << original_backend end # Add Bugsnag failure backend unless ::Resque::Failure.backend.classes.include?(self) ::Resque::Failure.backend.classes << self end end
configure(&block)
click to toggle source
Callthrough to Bugsnag
configuration.
# File lib/bugsnag/integrations/resque.rb, line 13 def self.configure(&block) add_failure_backend Bugsnag.configure(&block) end
Public Instance Methods
save()
click to toggle source
Notifies Bugsnag
of a raised exception.
# File lib/bugsnag/integrations/resque.rb, line 39 def save Bugsnag.notify(exception, true) do |report| report.severity = "error" report.severity_reason = { :type => Bugsnag::Report::UNHANDLED_EXCEPTION_MIDDLEWARE, :attributes => FRAMEWORK_ATTRIBUTES } metadata = payload class_name = metadata['class'] # when using Active Job the payload "class" will always be the Resque # "JobWrapper", so we need to unwrap the actual class name if class_name == "ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper" unwrapped_class_name = metadata['args'][0]['job_class'] rescue nil if unwrapped_class_name class_name = unwrapped_class_name metadata['wrapped'] ||= unwrapped_class_name end end context = "#{class_name}@#{queue}" report.meta_data.merge!({ context: context, payload: metadata }) report.automatic_context = context end end