Disable automatic retry with ActiveJob, used with Sidekiq
Ok thanks for the answer.
Just for information, I also asked the question in an issue related to this subject on ActiveJob Github repository : https://github.com/rails/activejob/issues/47
DHH answered me a solution I haven't tested but that can do the job.
Personnally, I finally put this in an initializer in order to disable Sidekiq retries globally and it works well :
Sidekiq.configure_server do |config|
config.server_middleware do |chain|
chain.add Sidekiq::Middleware::Server::RetryJobs, :max_retries => 0
end
end
There is no way to configure anything about Sidekiq with ActiveJob. Use a Sidekiq Worker if you don't want to use the defaults.
As of sidekiq 6.0.1
, it is possible to pass the following to an ActiveJob worker to prevent it from retrying:
class ExampleJob < ActiveJob::Base
sidekiq_options retry: false
def perform(*args)
# Perform Job
end
end
More information: https://github.com/mperham/sidekiq/wiki/Active-Job#customizing-error-handling
EDIT:
According to this this requires Rails 6.0.1
or later as well.