diff options
Diffstat (limited to 'lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed.rb')
-rw-r--r-- | lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed.rb b/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed.rb index 8c7e15364f8..347f4e61d19 100644 --- a/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed.rb +++ b/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed.rb @@ -10,6 +10,8 @@ module Gitlab class UntilExecuted < DeduplicatesWhenScheduling override :perform def perform(job) + job_deleted = false + super yield @@ -17,7 +19,10 @@ module Gitlab should_reschedule = duplicate_job.should_reschedule? # Deleting before rescheduling to make sure we don't deduplicate again. duplicate_job.delete! + job_deleted = true duplicate_job.reschedule if should_reschedule + ensure + duplicate_job.delete! unless job_deleted end end end |