Sha256: 52d18dab2dccd743aae71b53cc98639fb8f4e6a7e53cef565efc4d0f1a3693e1
Contents?: true
Size: 1.34 KB
Versions: 3
Compression:
Stored size: 1.34 KB
Contents
module Airbrake module Sidekiq ## # Provides integration with Sidekiq 2, 4, 5. class ErrorHandler # rubocop:disable Lint/RescueException def call(_worker, context, _queue) yield rescue Exception => exception notify_airbrake(exception, context) raise exception end # rubocop:enable Lint/RescueException private def notify_airbrake(exception, context) Airbrake.notify(exception, context) do |notice| notice[:context][:component] = 'sidekiq' notice[:context][:action] = action(context) end end ## # @return [String] job's name. When ActiveJob is present, retrieve # job_class. When used directly, use worker's name def action(context) klass = context['class'] || context[:job] && context[:job]['class'] return klass unless context[:job] && context[:job]['args'].first return klass unless (job_class = context[:job]['args'].first['job_class']) job_class end end end end if Sidekiq::VERSION < '3' Sidekiq.configure_server do |config| config.server_middleware do |chain| chain.add(Airbrake::Sidekiq::ErrorHandler) end end else Sidekiq.configure_server do |config| config.error_handlers << Airbrake::Sidekiq::ErrorHandler.new.method(:notify_airbrake) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
airbrake-7.0.1 | lib/airbrake/sidekiq.rb |
airbrake-7.0.0 | lib/airbrake/sidekiq.rb |
airbrake-6.3.0 | lib/airbrake/sidekiq.rb |