Skip to content
Browse files

Use the SynchronousQueue as default in production and development.

We should not let the users use the ThreadedConsumer without know about
the risks
  • Loading branch information...
1 parent 079eed8 commit 9bb4850e7bf864e0277140ab6d3d4ae67ef68170 @rafaelfranca rafaelfranca committed Sep 12, 2012
View
4 railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt
@@ -42,6 +42,6 @@
config.assets.debug = true
<%- end -%>
- # In development, use an in-memory queue for queueing.
- config.queue = Rails::Queueing::Queue
+ # In development, use an synchronous queue for queueing.
+ config.queue = Rails::Queueing::SynchronousQueue
end
View
4 railties/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt
@@ -80,7 +80,7 @@
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
- # Default the production mode queue to an in-memory queue. You will probably
+ # Default the production mode queue to an synchronous queue. You will probably
# want to replace this with an out-of-process queueing solution.
- config.queue = Rails::Queueing::Queue
+ config.queue = Rails::Queueing::SynchronousQueue
end
View
11 railties/test/application/queue_test.rb
@@ -23,10 +23,10 @@ def app_const
assert_kind_of Rails::Queueing::TestQueue, Rails.queue[:default]
end
- test "the queue is a Queue in development mode" do
+ test "the queue is a SynchronousQueue in development mode" do
app("development")
- assert_kind_of Rails::Queueing::Queue, Rails.application.queue[:default]
- assert_kind_of Rails::Queueing::Queue, Rails.queue[:default]
+ assert_kind_of Rails::Queueing::SynchronousQueue, Rails.application.queue[:default]
+ assert_kind_of Rails::Queueing::SynchronousQueue, Rails.queue[:default]
end
class ThreadTrackingJob
@@ -47,15 +47,15 @@ def ran?
end
end
- test "in development mode, an enqueued job will be processed in a separate thread" do
+ test "in development mode, an enqueued job will be processed in the same thread" do
app("development")
job = ThreadTrackingJob.new
Rails.queue.push job
sleep 0.1
assert job.ran?, "Expected job to be run"
- assert job.ran_in_different_thread?, "Expected job to run in a different thread"
+ refute job.ran_in_different_thread?, "Expected job to run in the same thread"
end
test "in test mode, explicitly draining the queue will process it in a separate thread" do
@@ -160,6 +160,7 @@ def run
test "a custom consumer implementation can be provided" do
add_to_env_config "production", <<-RUBY
require "my_queue_consumer"
+ config.queue = Rails::Queueing::Queue
config.queue_consumer = MyQueueConsumer
RUBY

0 comments on commit 9bb4850

Please sign in to comment.
Something went wrong with that request. Please try again.