diff options
author | Constance Okoghenun <cokoghenun@gitlab.com> | 2018-02-26 19:58:12 +0100 |
---|---|---|
committer | Constance Okoghenun <cokoghenun@gitlab.com> | 2018-02-26 19:58:12 +0100 |
commit | e7c8f8fb43d2d56c3db7cd09787f4c32077afc4a (patch) | |
tree | cb09b44b1795ff7018e9c854206e990037cf5e0e /app/workers/authorized_projects_worker.rb | |
parent | de0aff845f47e5a8d34789c4dfc4c33586ae73dd (diff) | |
parent | 1041f5da8758a5e91b32656f53b6bcf1a3d03e68 (diff) | |
download | gitlab-ce-e7c8f8fb43d2d56c3db7cd09787f4c32077afc4a.tar.gz |
Merge branch 'master' of https://gitlab.com/gitlab-org/gitlab-ce into profile-bundle-tag-refactor
Diffstat (limited to 'app/workers/authorized_projects_worker.rb')
-rw-r--r-- | app/workers/authorized_projects_worker.rb | 36 |
1 files changed, 2 insertions, 34 deletions
diff --git a/app/workers/authorized_projects_worker.rb b/app/workers/authorized_projects_worker.rb index 09559e3b696..d7e24491516 100644 --- a/app/workers/authorized_projects_worker.rb +++ b/app/workers/authorized_projects_worker.rb @@ -1,42 +1,10 @@ class AuthorizedProjectsWorker include ApplicationWorker + prepend WaitableWorker - # Schedules multiple jobs and waits for them to be completed. - def self.bulk_perform_and_wait(args_list) - # Short-circuit: it's more efficient to do small numbers of jobs inline - return bulk_perform_inline(args_list) if args_list.size <= 3 - - waiter = Gitlab::JobWaiter.new(args_list.size) - - # Point all the bulk jobs at the same JobWaiter. Converts, [[1], [2], [3]] - # into [[1, "key"], [2, "key"], [3, "key"]] - waiting_args_list = args_list.map { |args| [*args, waiter.key] } - bulk_perform_async(waiting_args_list) - - waiter.wait - end - - # Performs multiple jobs directly. Failed jobs will be put into sidekiq so - # they can benefit from retries - def self.bulk_perform_inline(args_list) - failed = [] - - args_list.each do |args| - begin - new.perform(*args) - rescue - failed << args - end - end - - bulk_perform_async(failed) if failed.present? - end - - def perform(user_id, notify_key = nil) + def perform(user_id) user = User.find_by(id: user_id) user&.refresh_authorized_projects - ensure - Gitlab::JobWaiter.notify(notify_key, jid) if notify_key end end |