Sha256: f48c52210288e4fff9dec770ba5cb70beb746b5b26080a513d440cb8da8b3d89

Contents?: true

Size: 946 Bytes

Versions: 3

Compression:

Stored size: 946 Bytes

Contents

module Honeybadger
  module Integrations
    module Sidekiq
      class Middleware
        def call(worker, msg, queue)
          Honeybadger.context.clear!
          Honeybadger::Monitor::Trace.instrument("#{msg['class']}#perform", { :source => 'sidekiq', :jid => msg['jid'], :class => msg['class'] }) do
            yield
          end
        end
      end
    end
  end

  Dependency.register do
    requirement { defined?(::Sidekiq) }

    injection do
      ::Sidekiq.configure_server do |config|
        config.server_middleware do |chain|
          chain.add Integrations::Sidekiq::Middleware
        end
      end
    end
  end

  Dependency.register do
    requirement { defined?(::Sidekiq::VERSION) && ::Sidekiq::VERSION > '3' }

    injection do
      ::Sidekiq.configure_server do |config|
        config.error_handlers << Proc.new {|ex,context| Honeybadger.notify_or_ignore(ex, :parameters => context) }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
honeybadger-1.15.2 lib/honeybadger/integrations/sidekiq.rb
honeybadger-1.15.1 lib/honeybadger/integrations/sidekiq.rb
honeybadger-1.15.0 lib/honeybadger/integrations/sidekiq.rb