Put cancelled job in DeadSet

This replicates Sidekiq behavior
of pushing dead job into DeadSet.
This commit is contained in:
Kamil Trzciński 2019-08-21 21:15:03 +02:00
parent 8d17c4dae6
commit dbd88c02d6
2 changed files with 14 additions and 2 deletions

View File

@ -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

View File

@ -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