From d505a2b8e67998b8e6f9ab525e2ddd6c9298f51e Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Mon, 19 Jun 2017 16:12:05 +0200 Subject: Reduce wait timings for Sidekiq jobs This reduces the time spent waiting for Sidekiq jobs to complete in JobWaiter, and reduces the sleep interval when trying to acquire the lease for refreshing authorizations. These changes should reduce the time spent just waiting for a lock, which we seem to be spending most time in when running the AuthorizedProjectsWorker. --- app/services/users/refresh_authorized_projects_service.rb | 2 +- changelogs/unreleased/reduce-sidekiq-wait-timings.yml | 4 ++++ lib/gitlab/job_waiter.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/reduce-sidekiq-wait-timings.yml diff --git a/app/services/users/refresh_authorized_projects_service.rb b/app/services/users/refresh_authorized_projects_service.rb index 3e07b811027..f028f5eb0d4 100644 --- a/app/services/users/refresh_authorized_projects_service.rb +++ b/app/services/users/refresh_authorized_projects_service.rb @@ -34,7 +34,7 @@ module Users # Keep trying until we obtain the lease. If we don't do so we may end up # not updating the list of authorized projects properly. To prevent # hammering Redis too much we'll wait for a bit between retries. - sleep(1) + sleep(0.1) end begin diff --git a/changelogs/unreleased/reduce-sidekiq-wait-timings.yml b/changelogs/unreleased/reduce-sidekiq-wait-timings.yml new file mode 100644 index 00000000000..4d23accc82e --- /dev/null +++ b/changelogs/unreleased/reduce-sidekiq-wait-timings.yml @@ -0,0 +1,4 @@ +--- +title: Reduce time spent waiting for certain Sidekiq jobs to complete +merge_request: +author: diff --git a/lib/gitlab/job_waiter.rb b/lib/gitlab/job_waiter.rb index 8db91d25a4b..208f0e1bbea 100644 --- a/lib/gitlab/job_waiter.rb +++ b/lib/gitlab/job_waiter.rb @@ -14,7 +14,7 @@ module Gitlab # timeout - The maximum amount of seconds to block the caller for. This # ensures we don't indefinitely block a caller in case a job takes # long to process, or is never processed. - def wait(timeout = 60) + def wait(timeout = 10) start = Time.current while (Time.current - start) <= timeout -- cgit v1.2.1