Extract QueueAdapter module for setting and looking up adapters

上级 fd1e61ad
require 'active_job/queue_adapter'
require 'active_job/queue_adapters/inline_adapter'
require 'active_support/core_ext/string/inflections'
module ActiveJob
class Base
cattr_accessor(:queue_adapter) { ActiveJob::QueueAdapters::InlineAdapter }
extend QueueAdapter
cattr_accessor(:queue_base_name) { "active_jobs" }
cattr_accessor(:queue_name) { queue_base_name }
......@@ -15,11 +17,6 @@ def enqueue(*args)
def queue_as(part_name)
self.queue_name = "#{queue_base_name}_#{part_name}"
end
def adapter=(adapter_name)
require "active_job/queue_adapters/#{adapter_name}_adapter"
ActiveJob::Base.queue_adapter = "ActiveJob::QueueAdapters::#{adapter_name.to_s.camelize}Adapter".constantize
end
end
end
end
\ No newline at end of file
require 'active_job/queue_adapters/inline_adapter'
require 'active_support/core_ext/string/inflections'
module ActiveJob
module QueueAdapter
mattr_reader(:queue_adapter) { ActiveJob::QueueAdapters::InlineAdapter }
def queue_adapter=(name_or_adapter)
if name_or_adapter.is_a?(Symbol) || name_or_adapter.is_a?(String)
adapter = load_adapter(name_or_adapter)
else
adapter = name_or_adapter
end
@@queue_adapter = adapter
end
private
def load_adapter(name)
require "active_job/queue_adapters/#{name}_adapter"
"ActiveJob::QueueAdapters::#{name.to_s.camelize}Adapter".constantize
end
end
end
\ No newline at end of file
ActiveJob::Base.adapter = :inline
\ No newline at end of file
ActiveJob::Base.queue_adapter = :inline
\ No newline at end of file
ActiveJob::Base.adapter = :resque
ActiveJob::Base.queue_adapter = :resque
Resque.inline = true
require 'sidekiq/testing/inline'
ActiveJob::Base.adapter = :sidekiq
ActiveJob::Base.queue_adapter = :sidekiq
require 'sucker_punch/testing/inline'
ActiveJob::Base.adapter = :sucker_punch
ActiveJob::Base.queue_adapter = :sucker_punch
......@@ -6,22 +6,22 @@ def setup
end
test 'should load inline adapter' do
ActiveJob::Base.adapter = :inline
ActiveJob::Base.queue_adapter = :inline
assert_equal ActiveJob::QueueAdapters::InlineAdapter, ActiveJob::Base.queue_adapter
end
test 'should load resque adapter' do
ActiveJob::Base.adapter = :resque
ActiveJob::Base.queue_adapter = :resque
assert_equal ActiveJob::QueueAdapters::ResqueAdapter, ActiveJob::Base.queue_adapter
end
test 'should load sidekiq adapter' do
ActiveJob::Base.adapter = :sidekiq
ActiveJob::Base.queue_adapter = :sidekiq
assert_equal ActiveJob::QueueAdapters::SidekiqAdapter, ActiveJob::Base.queue_adapter
end
test 'should load sucker punch adapter' do
ActiveJob::Base.adapter = :sucker_punch
ActiveJob::Base.queue_adapter = :sucker_punch
assert_equal ActiveJob::QueueAdapters::SuckerPunchAdapter, ActiveJob::Base.queue_adapter
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册