ActiveJob: allow blank queue names

As discussed in #17195, Que uses blank queue names by default for
performance reasons. At the very least, ActiveJob should allow users to
choose "" as their queue name. This commit allows blank queue names, as
well as tests to make sure that nil queue names still use the default.
This commit is contained in:
Blake Gentry 2014-10-09 10:33:55 -07:00
parent e3207bdbba
commit 4a1dbba108
2 changed files with 21 additions and 1 deletions

@ -24,7 +24,7 @@ def queue_as(part_name=nil, &block)
end
def queue_name_from_part(part_name) #:nodoc:
queue_name = part_name.to_s.presence || default_queue_name
queue_name = part_name || default_queue_name
name_parts = [queue_name_prefix.presence, queue_name]
name_parts.compact.join('_')
end

@ -18,6 +18,26 @@ class QueueNamingTest < ActiveSupport::TestCase
end
end
test 'allows a blank queue name' do
begin
original_queue_name = HelloJob.queue_name
HelloJob.queue_as ""
assert_equal "", HelloJob.new.queue_name
ensure
HelloJob.queue_name = original_queue_name
end
end
test 'does not use a nil queue name' do
begin
original_queue_name = HelloJob.queue_name
HelloJob.queue_as nil
assert_equal "default", HelloJob.new.queue_name
ensure
HelloJob.queue_name = original_queue_name
end
end
test 'evals block given to queue_as to determine queue' do
begin
original_queue_name = HelloJob.queue_name