Use Rails::Queueing::Queue instead of Queue so people can build their own consumers around stdlib's Queue
This commit is contained in:
parent
fc6b115b88
commit
9fc9e89477
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -37,5 +37,5 @@
|
|||
<%- end -%>
|
||||
|
||||
# In development, use an in-memory queue for queueing
|
||||
config.queue = Queue
|
||||
config.queue = Rails::Queueing::Queue
|
||||
end
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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+
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue