2016-08-02 22:04:45 +00:00
|
|
|
## Rails 5.1.0.alpha ##
|
|
|
|
|
2016-08-16 23:01:59 +00:00
|
|
|
* Yield the job instance so you have access to things like `job.arguments` on the custom logic after retries fail.
|
|
|
|
|
|
|
|
*DHH*
|
|
|
|
|
2016-08-10 04:02:22 +00:00
|
|
|
* Added declarative exception handling via `ActiveJob::Base.retry_on` and `ActiveJob::Base.discard_on`.
|
2016-08-02 22:04:45 +00:00
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
class RemoteServiceJob < ActiveJob::Base
|
|
|
|
retry_on CustomAppException # defaults to 3s wait, 5 attempts
|
|
|
|
retry_on AnotherCustomAppException, wait: ->(executions) { executions * 2 }
|
|
|
|
retry_on ActiveRecord::StatementInvalid, wait: 5.seconds, attempts: 3
|
|
|
|
retry_on Net::OpenTimeout, wait: :exponentially_longer, attempts: 10
|
|
|
|
discard_on ActiveJob::DeserializationError
|
|
|
|
|
|
|
|
def perform(*args)
|
|
|
|
# Might raise CustomAppException or AnotherCustomAppException for something domain specific
|
|
|
|
# Might raise ActiveRecord::StatementInvalid when a local db deadlock is detected
|
|
|
|
# Might raise Net::OpenTimeout when the remote service is down
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
*DHH*
|
2016-05-06 21:54:40 +00:00
|
|
|
|
2016-05-10 04:07:09 +00:00
|
|
|
Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/activejob/CHANGELOG.md) for previous changes.
|