rails--rails/activejob/CHANGELOG.md

59 lines
1.9 KiB
Markdown

* Allow a job to retry indefinitely
The `attempts` parameter of the `retry_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 methods
`assert_enqueued_with` and `assert_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 an
`ActiveJob::EnqueueError` which will be caught and stored in the job
instance so code attempting to enqueue jobs can inspect any raised
`EnqueueError` 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](https://github.com/rails/rails/blob/6-1-stable/activejob/CHANGELOG.md) for previous changes.