Skip to content

Commit

Permalink
[ActiveJob] Add queue_name_prefix so all queue are prefixed .
Browse files Browse the repository at this point in the history
We can split queues on a per environement basis as well as seggregate per application so we can split queues on a per env basis

ActiveJob::Base.queue_name_prefix = 'foo'
  • Loading branch information
seuros committed Aug 18, 2014
1 parent 879dde9 commit 68c643f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
5 changes: 4 additions & 1 deletion activejob/lib/active_job/queue_name.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ module QueueName
extend ActiveSupport::Concern

module ClassMethods
mattr_accessor(:queue_name_prefix)
mattr_accessor(:default_queue_name) { "default" }

def queue_as(part_name)
self.queue_name = part_name.to_s.presence || default_queue_name
queue_name = part_name.to_s.presence || default_queue_name
name_parts = [queue_name_prefix.presence, queue_name]
self.queue_name = name_parts.compact.join('_')
end
end

Expand Down
15 changes: 15 additions & 0 deletions activejob/test/cases/queue_naming_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,19 @@ class QueueNamingTest < ActiveSupport::TestCase
HelloJob.queue_name = LoggingJob.queue_name = ActiveJob::Base.default_queue_name
end
end

test 'should prefix the queue name' do
begin
original_queue_name_prefix = ActiveJob::Base.queue_name_prefix
original_queue_name = HelloJob.queue_name

ActiveJob::Base.queue_name_prefix = 'aj'
HelloJob.queue_as :low
assert_equal 'aj_low', HelloJob.queue_name
ensure
ActiveJob::Base.queue_name_prefix = original_queue_name_prefix
HelloJob.queue_name = original_queue_name
end
end

end

0 comments on commit 68c643f

Please sign in to comment.