gitlab-org--gitlab-foss/app/workers/ci/delete_objects_worker.rb

38 lines
802 B
Ruby

# frozen_string_literal: true
module Ci
class DeleteObjectsWorker
include ApplicationWorker
include LimitedCapacity::Worker
feature_category :continuous_integration
idempotent!
def perform_work(*args)
service.execute
end
def remaining_work_count(*args)
@remaining_work_count ||= service
.remaining_batches_count(max_batch_count: remaining_capacity)
end
def max_running_jobs
if ::Feature.enabled?(:ci_delete_objects_low_concurrency)
2
elsif ::Feature.enabled?(:ci_delete_objects_medium_concurrency)
20
elsif ::Feature.enabled?(:ci_delete_objects_high_concurrency)
50
else
0
end
end
private
def service
@service ||= DeleteObjectsService.new
end
end
end