diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-03-10 15:57:57 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-03-10 15:57:57 +0000 |
commit | c8bbf9a896ff9d163e59a282906d9bde8e892dba (patch) | |
tree | 4e01e540e0259f2fce14c8222af716c5b1501fae | |
parent | c17f260473717e1e8b436eae3314527e654e0bb8 (diff) | |
parent | 5a135264ae62fc1884118ea600691df666aa9780 (diff) | |
download | gitlab-ce-c8bbf9a896ff9d163e59a282906d9bde8e892dba.tar.gz |
Merge branch '29137-bulk-perform-async-should-specify-queue' into 'master'
adds queue option to push bulk in authorized projects worker
Closes #29137
See merge request !9813
-rw-r--r-- | app/workers/authorized_projects_worker.rb | 2 | ||||
-rw-r--r-- | changelogs/unreleased/29137-bulk-perform-async-should-specify-queue.yml | 4 | ||||
-rw-r--r-- | spec/workers/authorized_projects_worker_spec.rb | 25 |
3 files changed, 25 insertions, 6 deletions
diff --git a/app/workers/authorized_projects_worker.rb b/app/workers/authorized_projects_worker.rb index 0e20df506a3..13207a8bc71 100644 --- a/app/workers/authorized_projects_worker.rb +++ b/app/workers/authorized_projects_worker.rb @@ -10,7 +10,7 @@ class AuthorizedProjectsWorker end def self.bulk_perform_async(args_list) - Sidekiq::Client.push_bulk('class' => self, 'args' => args_list) + Sidekiq::Client.push_bulk('class' => self, 'queue' => sidekiq_options['queue'], 'args' => args_list) end def perform(user_id) diff --git a/changelogs/unreleased/29137-bulk-perform-async-should-specify-queue.yml b/changelogs/unreleased/29137-bulk-perform-async-should-specify-queue.yml new file mode 100644 index 00000000000..0de7754badc --- /dev/null +++ b/changelogs/unreleased/29137-bulk-perform-async-should-specify-queue.yml @@ -0,0 +1,4 @@ +--- +title: Make authorized projects worker use a specific queue instead of the default one +merge_request: 9813 +author: diff --git a/spec/workers/authorized_projects_worker_spec.rb b/spec/workers/authorized_projects_worker_spec.rb index 97c4bfcd248..bd5cc651c2b 100644 --- a/spec/workers/authorized_projects_worker_spec.rb +++ b/spec/workers/authorized_projects_worker_spec.rb @@ -1,12 +1,10 @@ require 'spec_helper' describe AuthorizedProjectsWorker do - let(:worker) { described_class.new } + let(:project) { create(:empty_project) } describe '.bulk_perform_and_wait' do it 'schedules the ids and waits for the jobs to complete' do - project = create(:project) - project.owner.project_authorizations.delete_all described_class.bulk_perform_and_wait([[project.owner.id]]) @@ -15,20 +13,37 @@ describe AuthorizedProjectsWorker do end end + describe '.bulk_perform_async' do + it "uses it's respective sidekiq queue" do + args = [[project.owner.id]] + push_bulk_args = { + 'class' => described_class, + 'queue' => described_class.sidekiq_options['queue'], + 'args' => args + } + + expect(Sidekiq::Client).to receive(:push_bulk).with(push_bulk_args).once + + described_class.bulk_perform_async(args) + end + end + describe '#perform' do + subject { described_class.new } + it "refreshes user's authorized projects" do user = create(:user) expect_any_instance_of(User).to receive(:refresh_authorized_projects) - worker.perform(user.id) + subject.perform(user.id) end context "when the user is not found" do it "does nothing" do expect_any_instance_of(User).not_to receive(:refresh_authorized_projects) - described_class.new.perform(-1) + subject.perform(-1) end end end |