mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
33 lines
872 B
Ruby
33 lines
872 B
Ruby
require 'sidekiq/util'
|
|
|
|
module Sidekiq
|
|
module ExceptionHandler
|
|
extend self
|
|
extend Util
|
|
|
|
def handle(ex,msg)
|
|
logger.warn ex
|
|
logger.warn ex.backtrace.join("\n")
|
|
send_to_airbrake(msg, ex) if defined?(::Airbrake)
|
|
send_to_exceptional(msg, ex) if defined?(::Exceptional)
|
|
send_to_exception_notifier(msg, ex) if defined?(::ExceptionNotifier)
|
|
end
|
|
|
|
private
|
|
|
|
def send_to_airbrake(msg, ex)
|
|
::Airbrake.notify(ex, :parameters => msg)
|
|
end
|
|
|
|
def send_to_exceptional(msg, ex)
|
|
if ::Exceptional::Config.should_send_to_api?
|
|
::Exceptional.context(msg)
|
|
::Exceptional::Remote.error(::Exceptional::ExceptionData.new(ex))
|
|
end
|
|
end
|
|
|
|
def send_to_exception_notifier(msg, ex)
|
|
::ExceptionNotifier::Notifier.background_exception_notification(ex, :data => { :message => msg })
|
|
end
|
|
end
|
|
end
|