Remove the key from the queue when runner is deleted
This commit is contained in:
parent
7a109402a8
commit
7a4d723e6b
2 changed files with 27 additions and 0 deletions
|
@ -38,6 +38,8 @@ module Ci
|
|||
|
||||
acts_as_taggable
|
||||
|
||||
after_destroy :cleanup_runner_queue
|
||||
|
||||
# Searches for runners matching the given query.
|
||||
#
|
||||
# This method uses ILIKE on PostgreSQL and LIKE on MySQL.
|
||||
|
@ -143,6 +145,12 @@ module Ci
|
|||
|
||||
private
|
||||
|
||||
def cleanup_runner_queue
|
||||
Gitlab::Redis.with do |redis|
|
||||
redis.del(runner_queue_key)
|
||||
end
|
||||
end
|
||||
|
||||
def runner_queue_key
|
||||
"runner:build_queue:#{self.token}"
|
||||
end
|
||||
|
|
|
@ -319,6 +319,25 @@ describe Ci::Runner, models: true do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#destroy' do
|
||||
let(:runner) { create(:ci_runner) }
|
||||
|
||||
context 'when there is a tick in the queue' do
|
||||
let!(:queue_key) { runner.send(:runner_queue_key) }
|
||||
|
||||
before do
|
||||
runner.tick_runner_queue
|
||||
runner.destroy
|
||||
end
|
||||
|
||||
it 'cleans up the queue' do
|
||||
Gitlab::Redis.with do |redis|
|
||||
expect(redis.get(queue_key)).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.assignable_for' do
|
||||
let(:runner) { create(:ci_runner) }
|
||||
let(:project) { create(:project) }
|
||||
|
|
Loading…
Reference in a new issue