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/lib | |
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/lib')
-rw-r--r-- | activejob/lib/active_job/execution.rb | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/activejob/lib/active_job/execution.rb b/activejob/lib/active_job/execution.rb index d75be376ec..f5a343311f 100644 --- a/activejob/lib/active_job/execution.rb +++ b/activejob/lib/active_job/execution.rb @@ -31,11 +31,11 @@ module ActiveJob # # MyJob.new(*args).perform_now def perform_now + # Guard against jobs that were persisted before we started counting executions by zeroing out nil counters + self.executions = (executions || 0) + 1 + deserialize_arguments_if_needed run_callbacks :perform do - # Guard against jobs that were persisted before we started counting executions by zeroing out nil counters - self.executions = (executions || 0) + 1 - perform(*arguments) end rescue => exception |