blob: f39dba6f5fb7cc4127595a2d0f3b7aa805edf060 (
plain) (
tree)
|
|
require 'active_job/errors'
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 }
cattr_accessor(:queue_base_name) { "active_jobs" }
cattr_accessor(:queue_name) { queue_base_name }
class << self
def enqueue(*args)
queue_adapter.queue self, *args
end
def queue_as(part_name)
self.queue_name = "#{queue_base_name}_#{part_name}"
end
def adapter=(adapter_name)
adapter_name = adapter_name.to_s
unless %w(inline resque sidekiq sucker_punch).include?(adapter_name)
fail ActiveJob::NotImplementedError
end
begin
require_relative "queue_adapters/#{adapter_name}_adapter"
ActiveJob::Base.queue_adapter = "ActiveJob::QueueAdapters::#{adapter_name.camelize}Adapter".constantize
rescue
fail ActiveJob::Error.new("#{adapter_name} is missing")
end
end
end
end
end
|