Skip to main content

sidekiq_custom_retry

🔄 Customize Retry Strategies with sidekiq_retry_in​

By default Sidekiq uses an exponential backoff for retries, but you can override this per worker to suit business needs. Define a sidekiq_retry_in block to control the delay for each retry attempt.

class EmailWorker
include Sidekiq::Worker
sidekiq_options retry: 5 # maximum 5 retries

# Customize retry intervals (in seconds)
sidekiq_retry_in do |count|
case count
when 0 then 30 # 30s after first failure
when 1 then 5.minutes
when 2 then 30.minutes
else 1.hour * count
end
end

def perform(recipient_id)
# send email logic
end
end