diff options
author | Stan Hu <stanhu@gmail.com> | 2019-08-21 20:29:10 +0000 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2019-08-21 20:29:10 +0000 |
commit | d57d8ddb72e069e14a272a93873271807b3a33d9 (patch) | |
tree | 08f95b3e9906744d5ce1b8314f3a58a090765ddd | |
parent | 45b3f554aabf75ef5b7e0a4f7cb05a67bed05a70 (diff) | |
parent | dbd88c02d6d2e4cb8af5347dd8e7b3ae63079a9d (diff) | |
download | gitlab-ce-d57d8ddb72e069e14a272a93873271807b3a33d9.tar.gz |
Merge branch 'sidekiq-interrupt-running-jobs-deadset' into 'master'
Put cancelled job in DeadSet
See merge request gitlab-org/gitlab-ce!32070
-rw-r--r-- | lib/gitlab/sidekiq_middleware/monitor.rb | 6 | ||||
-rw-r--r-- | spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/gitlab/sidekiq_middleware/monitor.rb b/lib/gitlab/sidekiq_middleware/monitor.rb index 0d88fe760d3..53a6132edac 100644 --- a/lib/gitlab/sidekiq_middleware/monitor.rb +++ b/lib/gitlab/sidekiq_middleware/monitor.rb @@ -8,8 +8,12 @@ module Gitlab yield end rescue Gitlab::SidekiqMonitor::CancelledError + # push job to DeadSet + payload = ::Sidekiq.dump_json(job) + ::Sidekiq::DeadSet.new.kill(payload, notify_failure: false) + # ignore retries - raise Sidekiq::JobRetry::Skip + raise ::Sidekiq::JobRetry::Skip end end end diff --git a/spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb b/spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb index 2933d26a387..7319cdc2399 100644 --- a/spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb +++ b/spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb @@ -33,9 +33,17 @@ describe Gitlab::SidekiqMiddleware::Monitor do end end - it 'does skip this job' do + it 'skips the job' do expect { subject }.to raise_error(Sidekiq::JobRetry::Skip) end + + it 'puts job in DeadSet' do + ::Sidekiq::DeadSet.new.clear + + expect do + subject rescue Sidekiq::JobRetry::Skip + end.to change { ::Sidekiq::DeadSet.new.size }.by(1) + end end end end |