Sha256: 3bf4eaed7d1f6c6f33d8b68a03dc058764e8c79c88a5be7422b07c6023db4629
Contents?: true
Size: 963 Bytes
Versions: 1
Compression:
Stored size: 963 Bytes
Contents
require 'sidekiq' require 'sidekiq/instantly_dead/version' require 'sidekiq/instantly_dead_error' module Sidekiq module InstantlyDead class Middleware def initialize(options = {}) @max_retries = options.fetch(:max_retries, Sidekiq::Middleware::Server::RetryJobs::DEFAULT_MAX_RETRY_ATTEMPTS) end def call(_worker, msg, _queue) yield rescue Sidekiq::InstantlyDeadError raise unless msg['retry'] unless msg['dead'] == false max_retry_attempts = retry_attempts_from(msg['retry'], @max_retries) msg['retry_count'] = max_retry_attempts Sidekiq.logger.debug { "Increase retry_count to max_retry_attempt(#{max_retry_attempt}) to instantly dead" } end raise end private def retry_attempts_from(msg_retry, default) if Fixnum === msg_retry msg_retry else default end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sidekiq-instantly_dead-0.1.0 | lib/sidekiq/instantly_dead.rb |