Commit d49e9e0e authored by Aleksei Lipniagov's avatar Aleksei Lipniagov Committed by Matthias Käppler

Add data_consistency for BuildQueueWorker

Introduces data_consistency for the worker, under feature flag, disabled
by default.
parent 3f08f01e
...@@ -10,6 +10,7 @@ class BuildQueueWorker # rubocop:disable Scalability/IdempotentWorker ...@@ -10,6 +10,7 @@ class BuildQueueWorker # rubocop:disable Scalability/IdempotentWorker
feature_category :continuous_integration feature_category :continuous_integration
urgency :high urgency :high
worker_resource_boundary :cpu worker_resource_boundary :cpu
data_consistency :sticky, feature_flag: :load_balancing_for_build_queue_worker
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord
def perform(build_id) def perform(build_id)
......
---
name: load_balancing_for_build_queue_worker
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63212
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/332586
milestone: '14.0'
type: development
group: group::memory
default_enabled: false
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe BuildQueueWorker do
describe '#perform' do
context 'when build exists' do
let!(:build) { create(:ci_build) }
it 'ticks runner queue value' do
expect_next_instance_of(Ci::UpdateBuildQueueService) do |instance|
expect(instance).to receive(:tick).with(build)
end
described_class.new.perform(build.id)
end
end
context 'when build does not exist' do
it 'does not raise exception' do
expect { described_class.new.perform(123) }
.not_to raise_error
end
end
end
it_behaves_like 'worker with data consistency',
described_class,
feature_flag: :load_balancing_for_build_queue_worker,
data_consistency: :sticky
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment