diff options
Diffstat (limited to 'app/workers/container_expiration_policy_worker.rb')
-rw-r--r-- | app/workers/container_expiration_policy_worker.rb | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/app/workers/container_expiration_policy_worker.rb b/app/workers/container_expiration_policy_worker.rb index dec13485d13..b15d1bf90bd 100644 --- a/app/workers/container_expiration_policy_worker.rb +++ b/app/workers/container_expiration_policy_worker.rb @@ -14,11 +14,18 @@ class ContainerExpirationPolicyWorker # rubocop:disable Scalability/IdempotentWo BATCH_SIZE = 1000 def perform + process_stale_ongoing_cleanups throttling_enabled? ? perform_throttled : perform_unthrottled end private + def process_stale_ongoing_cleanups + threshold = delete_tags_service_timeout.seconds + 30.minutes + ContainerRepository.with_stale_ongoing_cleanup(threshold.ago) + .update_all(expiration_policy_cleanup_status: :cleanup_unfinished) + end + def perform_unthrottled with_runnable_policy(preloaded: true) do |policy| with_context(project: policy.project, @@ -31,18 +38,6 @@ class ContainerExpirationPolicyWorker # rubocop:disable Scalability/IdempotentWo def perform_throttled try_obtain_lease do - unless loopless_enabled? - with_runnable_policy do |policy| - ContainerExpirationPolicy.transaction do - policy.schedule_next_run! - ContainerRepository.for_project_id(policy.id) - .each_batch do |relation| - relation.update_all(expiration_policy_cleanup_status: :cleanup_scheduled) - end - end - end - end - ContainerExpirationPolicies::CleanupContainerRepositoryWorker.perform_with_capacity end end @@ -79,11 +74,11 @@ class ContainerExpirationPolicyWorker # rubocop:disable Scalability/IdempotentWo Feature.enabled?(:container_registry_expiration_policies_throttling) end - def loopless_enabled? - Feature.enabled?(:container_registry_expiration_policies_loopless) - end - def lease_timeout 5.hours end + + def delete_tags_service_timeout + ::Gitlab::CurrentSettings.current_application_settings.container_registry_delete_tags_service_timeout || 0 + end end |