summaryrefslogtreecommitdiff
path: root/app/workers/authorized_projects_worker.rb
blob: 0e20df506a371d5765c5ae83e17b204cf0b9de76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class AuthorizedProjectsWorker
  include Sidekiq::Worker
  include DedicatedSidekiqQueue

  # Schedules multiple jobs and waits for them to be completed.
  def self.bulk_perform_and_wait(args_list)
    job_ids = bulk_perform_async(args_list)

    Gitlab::JobWaiter.new(job_ids).wait
  end

  def self.bulk_perform_async(args_list)
    Sidekiq::Client.push_bulk('class' => self, 'args' => args_list)
  end

  def perform(user_id)
    user = User.find_by(id: user_id)

    user&.refresh_authorized_projects
  end
end