-
Allow a job to retry indefinitely
The
attempts
parameter of theretry_on
method now accepts the symbol reference:unlimited
in addition to a specific number of retry attempts to allow a developer to specify that a job should retry forever until it succeeds.class MyJob < ActiveJob::Base retry_on(AlwaysRetryException, attempts: :unlimited) # the actual job code end
Daniel Morton
-
Added possibility to check on
:priority
in test helper methodsassert_enqueued_with
andassert_performed_with
.Wojciech Wnętrzak
-
OpenSSL constants are now used for Digest computations.
Dirkjan Bussink
-
Add a Serializer for the Range class.
This should allow things like
MyJob.perform_later(range: 1..100)
. -
Communicate enqueue failures to callers of
perform_later
.perform_later
can now optionally take a block which will execute after the adapter attempts to enqueue the job. The block will receive the job instance as an argument even if the enqueue was not successful. Additionally,ActiveJob
adapters now have the ability to raise anActiveJob::EnqueueError
which will be caught and stored in the job instance so code attempting to enqueue jobs can inspect any raisedEnqueueError
using the block.MyJob.perform_later do |job| unless job.successfully_enqueued? if job.enqueue_error&.message == "Redis was unavailable" # invoke some code that will retry the job after a delay end end end
Daniel Morton
-
Don't log rescuable exceptions defined with
rescue_from
.Hu Hailin
-
Allow
rescue_from
to rescue all exceptions.Adrianna Chang, Étienne Barrié
Please check 6-1-stable for previous changes.