diff options
author | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2016-04-12 17:07:54 +0200 |
---|---|---|
committer | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2016-04-12 17:07:54 +0200 |
commit | 97f4ffff1e7b5da94e18edc20c009ffb46784187 (patch) | |
tree | 5d49026f25bfacb529dafc9142250681f4263cfb /app/workers | |
parent | b37d3b9423991763ad03fca791a1daf473dafed1 (diff) | |
download | gitlab-ce-97f4ffff1e7b5da94e18edc20c009ffb46784187.tar.gz |
Add a 'circuit breaker' for repo checks
Diffstat (limited to 'app/workers')
-rw-r--r-- | app/workers/repository_check_worker.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/app/workers/repository_check_worker.rb b/app/workers/repository_check_worker.rb index afdc6a4c63a..017f49de08c 100644 --- a/app/workers/repository_check_worker.rb +++ b/app/workers/repository_check_worker.rb @@ -15,6 +15,7 @@ class RepositoryCheckWorker # check, only one (or two) will be checked at a time. project_ids.each do |project_id| break if Time.now - start >= RUN_TIME + break unless current_settings.repository_checks_enabled next if !try_obtain_lease(project_id) @@ -45,4 +46,11 @@ class RepositoryCheckWorker ) lease.try_obtain end + + def current_settings + # No caching of the settings! If we cache them and an admin disables + # this feature, an active RepositoryCheckWorker would keep going for up + # to 1 hour after the feature was disabled. + ApplicationSetting.current || Gitlab::CurrentSettings.fake_application_settings + end end |