Sha256: e22e48f7a9259e2188f44cd29ab47e0c9fa103a53a7b81377a9ad196edae89b0

Contents?: true

Size: 1.03 KB

Versions: 9

Compression:

Stored size: 1.03 KB

Contents

require 'honeybadger/plugin'
require 'honeybadger/ruby'

module Honeybadger
  module Plugins
    module Shoryuken
      class Middleware
        def call(worker, queue, sqs_msg, body)
          if sqs_msg.is_a?(Array)
            yield
            return
          end

          Honeybadger.flush do
            begin
              yield
            rescue => e
              receive_count = sqs_msg.attributes['ApproximateReceiveCount'.freeze]
              if receive_count && ::Honeybadger.config[:'shoryuken.attempt_threshold'].to_i <= receive_count.to_i
                Honeybadger.notify(e, parameters: body)
              end
              raise e
            end
          end
        ensure
          Honeybadger.context.clear!
        end
      end

      Plugin.register do
        requirement { defined?(::Shoryuken) }

        execution do
          ::Shoryuken.configure_server do |config|
            config.server_middleware do |chain|
              chain.add Middleware
            end
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
honeybadger-3.0.2 lib/honeybadger/plugins/shoryuken.rb
honeybadger-3.0.1 lib/honeybadger/plugins/shoryuken.rb
honeybadger-3.0.0 lib/honeybadger/plugins/shoryuken.rb
honeybadger-3.0.0.beta6 lib/honeybadger/plugins/shoryuken.rb
honeybadger-3.0.0.beta5 lib/honeybadger/plugins/shoryuken.rb
honeybadger-3.0.0.beta4 lib/honeybadger/plugins/shoryuken.rb
honeybadger-3.0.0.beta3 lib/honeybadger/plugins/shoryuken.rb
honeybadger-3.0.0.beta2 lib/honeybadger/plugins/shoryuken.rb
honeybadger-3.0.0.beta1 lib/honeybadger/plugins/shoryuken.rb