diff options
author | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2018-07-25 17:30:38 +0900 |
---|---|---|
committer | Yuji Yaginuma <yuuji.yaginuma@gmail.com> | 2018-08-18 11:22:41 +0900 |
commit | e49fb7921e94d533ed39c197cf0287120d389b28 (patch) | |
tree | 579f29338a25daeb88379cd1fbac169f18e23b3f /activejob/test/jobs | |
parent | d6688892f6fe3a3aae5c146dcee083210b15f65a (diff) | |
download | rails-e49fb7921e94d533ed39c197cf0287120d389b28.tar.gz rails-e49fb7921e94d533ed39c197cf0287120d389b28.tar.bz2 rails-e49fb7921e94d533ed39c197cf0287120d389b28.zip |
Increment execution count before deserialize arguments
Currently, the execution count increments after deserializes arguments.
Therefore, if an error occurs with deserialize, it retries indefinitely.
In order to prevent this, the count is moved before deserialize.
Fixes #33344.
Diffstat (limited to 'activejob/test/jobs')
-rw-r--r-- | activejob/test/jobs/retry_job.rb | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/activejob/test/jobs/retry_job.rb b/activejob/test/jobs/retry_job.rb index 1383fffd7d..68dc17e16c 100644 --- a/activejob/test/jobs/retry_job.rb +++ b/activejob/test/jobs/retry_job.rb @@ -24,6 +24,7 @@ class RetryJob < ActiveJob::Base retry_on ExponentialWaitTenAttemptsError, wait: :exponentially_longer, attempts: 10 retry_on CustomWaitTenAttemptsError, wait: ->(executions) { executions * 2 }, attempts: 10 retry_on(CustomCatchError) { |job, error| JobBuffer.add("Dealt with a job that failed to retry in a custom way after #{job.arguments.second} attempts. Message: #{error.message}") } + retry_on(ActiveJob::DeserializationError) { |job, error| JobBuffer.add("Raised #{error.class} for the #{job.executions} time") } discard_on DiscardableError discard_on FirstDiscardableErrorOfTwo, SecondDiscardableErrorOfTwo |