diff options
Diffstat (limited to 'app/services/ci/queue/pending_builds_strategy.rb')
-rw-r--r-- | app/services/ci/queue/pending_builds_strategy.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/app/services/ci/queue/pending_builds_strategy.rb b/app/services/ci/queue/pending_builds_strategy.rb index cfafe66d10b..b2929390e58 100644 --- a/app/services/ci/queue/pending_builds_strategy.rb +++ b/app/services/ci/queue/pending_builds_strategy.rb @@ -57,9 +57,10 @@ module Ci # if disaster recovery is enabled, we fallback to FIFO scheduling relation.order('ci_pending_builds.build_id ASC') else - # Implement fair scheduling - # this returns builds that are ordered by number of running builds - # we prefer projects that don't use shared runners at all + # Implements Fair Scheduling + # Builds are ordered by projects that have the fewest running builds. + # This keeps projects that create many builds at once from hogging capacity but + # has the downside of penalizing projects with lots of builds created in a short period of time relation .with(running_builds_for_shared_runners_cte.to_arel) .joins("LEFT JOIN project_builds ON ci_pending_builds.project_id = project_builds.project_id") |