diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-09-12 14:47:15 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-09-12 15:19:34 -0300 |
commit | 9bb4850e7bf864e0277140ab6d3d4ae67ef68170 (patch) | |
tree | 2a6ab0f9dcaa130acf74f5f6b94a159330812f8e | |
parent | 079eed83d9822959a0a4efacc31e912165024a26 (diff) | |
download | rails-9bb4850e7bf864e0277140ab6d3d4ae67ef68170.tar.gz rails-9bb4850e7bf864e0277140ab6d3d4ae67ef68170.tar.bz2 rails-9bb4850e7bf864e0277140ab6d3d4ae67ef68170.zip |
Use the SynchronousQueue as default in production and development.
We should not let the users use the ThreadedConsumer without know about
the risks
3 files changed, 10 insertions, 9 deletions
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 122e7e2b34..ba8f586613 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 @@ -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 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 a627636089..cceb88de39 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 @@ -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 diff --git a/railties/test/application/queue_test.rb b/railties/test/application/queue_test.rb index c856089540..f4c11c5f4f 100644 --- a/railties/test/application/queue_test.rb +++ b/railties/test/application/queue_test.rb @@ -23,10 +23,10 @@ module ApplicationTests 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,7 +47,7 @@ module ApplicationTests 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 @@ -55,7 +55,7 @@ module ApplicationTests 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 @@ module ApplicationTests 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 |