From b53da9e90b697d5ed648e34db1ed9219d2f2feb9 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 2 Aug 2016 15:04:45 -0700 Subject: [PATCH] Amend the CHANGELOG --- activejob/CHANGELOG.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/activejob/CHANGELOG.md b/activejob/CHANGELOG.md index 5e72c67aea..39503caeea 100644 --- a/activejob/CHANGELOG.md +++ b/activejob/CHANGELOG.md @@ -1,2 +1,23 @@ +## Rails 5.1.0.alpha ## + +* Added declarative exception handling via ActiveJob::Base.retry_on and ActiveJob::Base.discard_on. + + 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* Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/activejob/CHANGELOG.md) for previous changes.