Sha256: 19b926227b0783af56016f2a6e8000a192f0ef9047d4765fcfb20af20dce5862

Contents?: true

Size: 903 Bytes

Versions: 2

Compression:

Stored size: 903 Bytes

Contents

require 'sidekiq'

module Bugsnag
  class Sidekiq
    def initialize
      Bugsnag.configuration.internal_middleware.use(Bugsnag::Middleware::Sidekiq)
      Bugsnag.configuration.app_type = "sidekiq"
      Bugsnag.configuration.default_delivery_method = :synchronous
    end

    def call(worker, msg, queue)
      begin
        # store msg/queue in thread local state to be read by Bugsnag::Middleware::Sidekiq
        Bugsnag.set_request_data :sidekiq, { :msg => msg, :queue => queue }

        yield
      rescue Exception => ex
        raise ex if [Interrupt, SystemExit, SignalException].include? ex.class
        Bugsnag.auto_notify(ex)
        raise
      ensure
        Bugsnag.clear_request_data
      end
    end
  end
end

::Sidekiq.configure_server do |config|
  config.server_middleware do |chain|
    chain.insert_after ::Sidekiq::Middleware::Server::Logging, ::Bugsnag::Sidekiq
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bugsnag-5.3.1 lib/bugsnag/sidekiq.rb
bugsnag-5.3.0 lib/bugsnag/sidekiq.rb