Commit 7f669ae8 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Read running builds from denormalized table upon assignment

Changelog: performance
parent ef987699
...@@ -74,12 +74,26 @@ module Gitlab ...@@ -74,12 +74,26 @@ module Gitlab
return '+Inf' unless runner.instance_type? return '+Inf' unless runner.instance_type?
# excluding currently started job # excluding currently started job
running_jobs_count = job.project.builds.running.where(runner: ::Ci::Runner.instance_type) running_jobs_count = running_jobs_relation(job)
.limit(JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET + 1).count - 1 .where(runner: ::Ci::Runner.instance_type)
running_jobs_count < JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET ? running_jobs_count : "#{JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET}+" .limit(JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET + 1).count - 1
if running_jobs_count < JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET
running_jobs_count
else
"#{JOBS_RUNNING_FOR_PROJECT_MAX_BUCKET}+"
end
end end
# rubocop: enable CodeReuse/ActiveRecord # rubocop: enable CodeReuse/ActiveRecord
def running_jobs_relation(job)
if ::Feature.enabled?(:ci_pending_builds_maintain_denormalized_data, default_enabled: :yaml)
::Ci::RunningBuild.where(project_id: job.project.id)
else
job.project.builds.running
end
end
def increment_queue_operation(operation) def increment_queue_operation(operation)
self.class.increment_queue_operation(operation) self.class.increment_queue_operation(operation)
end 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