aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--railties/lib/rails/application/configuration.rb2
-rw-r--r--railties/lib/rails/application/finisher.rb2
-rw-r--r--railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt2
-rw-r--r--railties/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt2
-rw-r--r--railties/lib/rails/queueing.rb8
-rw-r--r--railties/test/application/queue_test.rb4
-rw-r--r--railties/test/queueing/threaded_consumer_test.rb2
7 files changed, 15 insertions, 7 deletions
diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb
index a36dad0e98..25bb680f69 100644
--- a/railties/lib/rails/application/configuration.rb
+++ b/railties/lib/rails/application/configuration.rb
@@ -43,7 +43,7 @@ module Rails
@autoflush_log = true
@log_formatter = ActiveSupport::Logger::SimpleFormatter.new
@use_schema_cache_dump = true
- @queue = Queue
+ @queue = Rails::Queueing::Queue
@assets = ActiveSupport::OrderedOptions.new
@assets.enabled = false
diff --git a/railties/lib/rails/application/finisher.rb b/railties/lib/rails/application/finisher.rb
index 6475b381f4..6a24e01f29 100644
--- a/railties/lib/rails/application/finisher.rb
+++ b/railties/lib/rails/application/finisher.rb
@@ -95,7 +95,7 @@ module Rails
end
initializer :activate_queue_consumer do |app|
- if config.queue == Queue
+ if config.queue == Rails::Queueing::Queue
consumer = Rails::Queueing::ThreadedConsumer.start(app.queue)
at_exit { consumer.shutdown }
end
diff --git a/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt
index c486ae590e..24bcec854c 100644
--- a/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt
+++ b/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt
@@ -37,5 +37,5 @@
<%- end -%>
# In development, use an in-memory queue for queueing
- config.queue = Queue
+ config.queue = Rails::Queueing::Queue
end
diff --git a/railties/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt
index 854e6e95cd..072aa8355d 100644
--- a/railties/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt
+++ b/railties/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt
@@ -79,5 +79,5 @@
# Default the production mode queue to an in-memory queue. You will probably
# want to replace this with an out-of-process queueing solution
- config.queue = Queue
+ config.queue = Rails::Queueing::Queue
end
diff --git a/railties/lib/rails/queueing.rb b/railties/lib/rails/queueing.rb
index 1254baf93e..2e187b8555 100644
--- a/railties/lib/rails/queueing.rb
+++ b/railties/lib/rails/queueing.rb
@@ -1,5 +1,13 @@
+require "thread"
+
module Rails
module Queueing
+ # A Queue that simply inherits from STDLIB's Queue. Everytime this
+ # queue is used, Rails automatically sets up a ThreadedConsumer
+ # to consume it.
+ class Queue < ::Queue
+ end
+
# In test mode, the Rails queue is backed by an Array so that assertions
# can be made about its contents. The test queue provides a +jobs+
# method to make assertions about the queue's contents and a +drain+
diff --git a/railties/test/application/queue_test.rb b/railties/test/application/queue_test.rb
index d5d88f69cb..ec809d7cc1 100644
--- a/railties/test/application/queue_test.rb
+++ b/railties/test/application/queue_test.rb
@@ -26,8 +26,8 @@ module ApplicationTests
test "the queue is a Queue in development mode" do
app("development")
- assert_kind_of Queue, Rails.application.queue
- assert_kind_of Queue, Rails.queue
+ assert_kind_of Rails::Queueing::Queue, Rails.application.queue
+ assert_kind_of Rails::Queueing::Queue, Rails.queue
end
test "in development mode, an enqueued job will be processed in a separate thread" do
diff --git a/railties/test/queueing/threaded_consumer_test.rb b/railties/test/queueing/threaded_consumer_test.rb
index dd5efa26ea..559de2a82d 100644
--- a/railties/test/queueing/threaded_consumer_test.rb
+++ b/railties/test/queueing/threaded_consumer_test.rb
@@ -15,7 +15,7 @@ class TestThreadConsumer < ActiveSupport::TestCase
end
def setup
- @queue = Queue.new
+ @queue = Rails::Queueing::Queue.new
@consumer = Rails::Queueing::ThreadedConsumer.start(@queue)
end