Class: Sidekiq::InstantlyDead::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq/instantly_dead.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Middleware

Returns a new instance of Middleware.



9
10
11
# File 'lib/sidekiq/instantly_dead.rb', line 9

def initialize(options = {})
  @max_retries = options.fetch(:max_retries, Sidekiq::Middleware::Server::RetryJobs::DEFAULT_MAX_RETRY_ATTEMPTS)
end

Instance Method Details

#call(_worker, msg, _queue) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/sidekiq/instantly_dead.rb', line 13

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