Skip to content

Commit

Permalink
Merge pull request #667 from appbot/prefix-skip
Browse files Browse the repository at this point in the history
Do not apply prefix to queues configured as URL or ARN
  • Loading branch information
cjlarose authored Jun 23, 2021
2 parents 4a6eb89 + 205bdad commit e4527ba
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 2 deletions.
2 changes: 2 additions & 0 deletions lib/shoryuken/environment_loader.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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://', 'arn:')

queue_name_prefix = ::ActiveJob::Base.queue_name_prefix
queue_name_delimiter = ::ActiveJob::Base.queue_name_delimiter

Expand Down
24 changes: 22 additions & 2 deletions spec/shoryuken/environment_loader_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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] = {
Expand All @@ -73,6 +73,26 @@
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' 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

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']}}

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 } }
Expand Down

0 comments on commit e4527ba

Please sign in to comment.