diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-16 21:25:58 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-16 21:25:58 +0300 |
commit | a5f4bba440d7f9ea47046a0a561d49adf0a1e6d4 (patch) | |
tree | fb69158581673816a8cd895f9d352dcb3c678b1e /app/workers/container_expiration_policies | |
parent | d16b2e8639e99961de6ddc93909f3bb5c1445ba1 (diff) |
Add latest changes from gitlab-org/gitlab@14-0-stable-eev14.0.0-rc42
Diffstat (limited to 'app/workers/container_expiration_policies')
-rw-r--r-- | app/workers/container_expiration_policies/cleanup_container_repository_worker.rb | 50 |
1 files changed, 12 insertions, 38 deletions
diff --git a/app/workers/container_expiration_policies/cleanup_container_repository_worker.rb b/app/workers/container_expiration_policies/cleanup_container_repository_worker.rb index 40cc233307a..3027d46b8b1 100644 --- a/app/workers/container_expiration_policies/cleanup_container_repository_worker.rb +++ b/app/workers/container_expiration_policies/cleanup_container_repository_worker.rb @@ -65,19 +65,9 @@ module ContainerExpirationPolicies def container_repository strong_memoize(:container_repository) do ContainerRepository.transaction do - # rubocop: disable CodeReuse/ActiveRecord # We need a lock to prevent two workers from picking up the same row - container_repository = if loopless_enabled? - next_container_repository - else - ContainerRepository.waiting_for_cleanup - .order(:expiration_policy_cleanup_status, :expiration_policy_started_at) - .limit(1) - .lock('FOR UPDATE SKIP LOCKED') - .first - end - - # rubocop: enable CodeReuse/ActiveRecord + container_repository = next_container_repository + container_repository&.tap(&:cleanup_ongoing!) end end @@ -102,28 +92,20 @@ module ContainerExpirationPolicies def cleanup_scheduled_count strong_memoize(:cleanup_scheduled_count) do - if loopless_enabled? - limit = max_running_jobs + 1 - ContainerExpirationPolicy.with_container_repositories - .runnable_schedules - .limit(limit) - .count - else - ContainerRepository.cleanup_scheduled.count - end + limit = max_running_jobs + 1 + ContainerExpirationPolicy.with_container_repositories + .runnable_schedules + .limit(limit) + .count end end def cleanup_unfinished_count strong_memoize(:cleanup_unfinished_count) do - if loopless_enabled? - limit = max_running_jobs + 1 - ContainerRepository.with_unfinished_cleanup - .limit(limit) - .count - else - ContainerRepository.cleanup_unfinished.count - end + limit = max_running_jobs + 1 + ContainerRepository.with_unfinished_cleanup + .limit(limit) + .count end end @@ -132,21 +114,13 @@ module ContainerExpirationPolicies now = Time.zone.now - if loopless_enabled? - policy.next_run_at < now || (now + max_cleanup_execution_time.seconds < policy.next_run_at) - else - now + max_cleanup_execution_time.seconds < policy.next_run_at - end + policy.next_run_at < now || (now + max_cleanup_execution_time.seconds < policy.next_run_at) end def throttling_enabled? Feature.enabled?(:container_registry_expiration_policies_throttling) end - def loopless_enabled? - Feature.enabled?(:container_registry_expiration_policies_loopless) - end - def max_cleanup_execution_time ::Gitlab::CurrentSettings.container_registry_delete_tags_service_timeout end |