class Honeybadger::Plugins::Shoryuken::Middleware
def attempt_threshold
def attempt_threshold ::Honeybadger.config[:'shoryuken.attempt_threshold'].to_i end
def call(_worker, _queue, sqs_msg, body)
def call(_worker, _queue, sqs_msg, body) begin yield rescue => e if attempt_threshold <= receive_count(sqs_msg) Honeybadger.notify(e, parameters: notification_params(body)) end raise e end ensure Honeybadger.clear! end
def notification_params(body)
def notification_params(body) body.is_a?(Array) ? { batch: body } : { body: body } end
def receive_count(sqs_msg)
def receive_count(sqs_msg) return 0 if sqs_msg.is_a?(Array) sqs_msg.attributes['ApproximateReceiveCount'.freeze].to_i end