From fe90c6906da4902dbd1b4dfbe63096295743a148 Mon Sep 17 00:00:00 2001 From: tris Date: Mon, 21 Jun 2021 17:12:11 +0800 Subject: [PATCH 1/5] Move common test setup to before block --- spec/shoryuken/environment_loader_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/shoryuken/environment_loader_spec.rb b/spec/shoryuken/environment_loader_spec.rb index 259af491..ebc3726e 100644 --- a/spec/shoryuken/environment_loader_spec.rb +++ b/spec/shoryuken/environment_loader_spec.rb @@ -57,11 +57,11 @@ ActiveJob::Base.queue_name_delimiter = '_' allow(Shoryuken).to receive(:active_job?).and_return(true) - end - specify do Shoryuken.active_job_queue_name_prefixing = true + end + specify do Shoryuken.options[:queues] = ['queue1', ['queue2', 2]] Shoryuken.options[:groups] = { From d28fb2a9fe0874751fc71561da596d47a1870c1e Mon Sep 17 00:00:00 2001 From: tris Date: Mon, 21 Jun 2021 17:12:52 +0800 Subject: [PATCH 2/5] Repro prefix being applied to queues configured by URL --- spec/shoryuken/environment_loader_spec.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/spec/shoryuken/environment_loader_spec.rb b/spec/shoryuken/environment_loader_spec.rb index ebc3726e..9c380369 100644 --- a/spec/shoryuken/environment_loader_spec.rb +++ b/spec/shoryuken/environment_loader_spec.rb @@ -73,6 +73,16 @@ expect(Shoryuken.groups['default'][:queues]).to eq(%w[test_queue1 test_queue2 test_queue2]) expect(Shoryuken.groups['group1'][:queues]).to eq(%w[test_group1_queue1 test_group1_queue2]) end + + it 'does not prefix url-based queues', pending: 'current behaviour' do + Shoryuken.options[:queues] = ['https://example.com/test_queue1'] + Shoryuken.options[:groups] = {'group1' => {queues: ['https://example.com/test_group1_queue1']}} + + subject.load + + expect(Shoryuken.groups['default'][:queues]).to(eq(['https://example.com/test_queue1'])) + expect(Shoryuken.groups['group1'][:queues]).to(eq(['https://example.com/test_group1_queue1'])) + end end describe "#setup_options" do let (:cli_queues) { { "queue1"=> 10, "queue2" => 20 } } From 5313cbd864242523f4efd2a48851105130111848 Mon Sep 17 00:00:00 2001 From: tris Date: Mon, 21 Jun 2021 17:20:14 +0800 Subject: [PATCH 3/5] Repro prefix being applied to queues configured by ARN --- spec/shoryuken/environment_loader_spec.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/spec/shoryuken/environment_loader_spec.rb b/spec/shoryuken/environment_loader_spec.rb index 9c380369..f67d3532 100644 --- a/spec/shoryuken/environment_loader_spec.rb +++ b/spec/shoryuken/environment_loader_spec.rb @@ -83,6 +83,16 @@ expect(Shoryuken.groups['default'][:queues]).to(eq(['https://example.com/test_queue1'])) expect(Shoryuken.groups['group1'][:queues]).to(eq(['https://example.com/test_group1_queue1'])) end + + it 'does not prefix arn-based queues', pending: 'current behaviour' do + Shoryuken.options[:queues] = ['arn:aws:sqs:fake-region-1:1234:test_queue1'] + Shoryuken.options[:groups] = {'group1' => {queues: ['arn:aws:sqs:fake-region-1:1234:test_group1_queue1']}} + + subject.load + + expect(Shoryuken.groups['default'][:queues]).to(eq(['arn:aws:sqs:fake-region-1:1234:test_queue1'])) + expect(Shoryuken.groups['group1'][:queues]).to(eq(['arn:aws:sqs:fake-region-1:1234:test_group1_queue1'])) + end end describe "#setup_options" do let (:cli_queues) { { "queue1"=> 10, "queue2" => 20 } } From 54809ea09373a55bfc9e5ecc3eacffa666d5c35d Mon Sep 17 00:00:00 2001 From: tris Date: Mon, 21 Jun 2021 17:38:23 +0800 Subject: [PATCH 4/5] Do not prefix queues configured by URL --- lib/shoryuken/environment_loader.rb | 2 ++ spec/shoryuken/environment_loader_spec.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/shoryuken/environment_loader.rb b/lib/shoryuken/environment_loader.rb index 560d486f..325d09bc 100644 --- a/lib/shoryuken/environment_loader.rb +++ b/lib/shoryuken/environment_loader.rb @@ -80,6 +80,8 @@ def load_rails end def prefix_active_job_queue_name(queue_name, weight) + return [queue_name, weight] if queue_name.start_with?('https://') + queue_name_prefix = ::ActiveJob::Base.queue_name_prefix queue_name_delimiter = ::ActiveJob::Base.queue_name_delimiter diff --git a/spec/shoryuken/environment_loader_spec.rb b/spec/shoryuken/environment_loader_spec.rb index f67d3532..ff9890e1 100644 --- a/spec/shoryuken/environment_loader_spec.rb +++ b/spec/shoryuken/environment_loader_spec.rb @@ -74,7 +74,7 @@ expect(Shoryuken.groups['group1'][:queues]).to eq(%w[test_group1_queue1 test_group1_queue2]) end - it 'does not prefix url-based queues', pending: 'current behaviour' do + it 'does not prefix url-based queues' do Shoryuken.options[:queues] = ['https://example.com/test_queue1'] Shoryuken.options[:groups] = {'group1' => {queues: ['https://example.com/test_group1_queue1']}} From 205bdadbb01a31c3a039bdb335757d89a9b48179 Mon Sep 17 00:00:00 2001 From: tris Date: Mon, 21 Jun 2021 17:39:35 +0800 Subject: [PATCH 5/5] Do not prefix queues configured by ARN --- lib/shoryuken/environment_loader.rb | 2 +- spec/shoryuken/environment_loader_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/shoryuken/environment_loader.rb b/lib/shoryuken/environment_loader.rb index 325d09bc..35d226f7 100644 --- a/lib/shoryuken/environment_loader.rb +++ b/lib/shoryuken/environment_loader.rb @@ -80,7 +80,7 @@ def load_rails end def prefix_active_job_queue_name(queue_name, weight) - return [queue_name, weight] if queue_name.start_with?('https://') + return [queue_name, weight] if queue_name.start_with?('https://', 'arn:') queue_name_prefix = ::ActiveJob::Base.queue_name_prefix queue_name_delimiter = ::ActiveJob::Base.queue_name_delimiter diff --git a/spec/shoryuken/environment_loader_spec.rb b/spec/shoryuken/environment_loader_spec.rb index ff9890e1..0e667024 100644 --- a/spec/shoryuken/environment_loader_spec.rb +++ b/spec/shoryuken/environment_loader_spec.rb @@ -84,7 +84,7 @@ expect(Shoryuken.groups['group1'][:queues]).to(eq(['https://example.com/test_group1_queue1'])) end - it 'does not prefix arn-based queues', pending: 'current behaviour' do + it 'does not prefix arn-based queues' do Shoryuken.options[:queues] = ['arn:aws:sqs:fake-region-1:1234:test_queue1'] Shoryuken.options[:groups] = {'group1' => {queues: ['arn:aws:sqs:fake-region-1:1234:test_group1_queue1']}}