diff options
Diffstat (limited to 'app/workers/project_cache_worker.rb')
-rw-r--r-- | app/workers/project_cache_worker.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/app/workers/project_cache_worker.rb b/app/workers/project_cache_worker.rb index a993b4b2680..b594d0427e7 100644 --- a/app/workers/project_cache_worker.rb +++ b/app/workers/project_cache_worker.rb @@ -33,8 +33,9 @@ class ProjectCacheWorker private def try_obtain_lease_for(project_id, section) - Gitlab::ExclusiveLease - .new("project_cache_worker:#{project_id}:#{section}", timeout: LEASE_TIMEOUT) - .try_obtain + lease_key = "project_cache_worker:#{project_id}:#{section}" + lease_uuid = Gitlab::ExclusiveLease.new(lease_key, timeout: LEASE_TIMEOUT).try_obtain + ensure + Gitlab::ExclusiveLease.cancel(lease_key, lease_uuid) if defined?(lease_key) && defined?(lease_uuid) end end |