123456789_123456789_123456789_123456789_123456789_

Module: ActiveJob::QueueAdapter::ClassMethods

Relationships & Source Files
Defined in: activejob/lib/active_job/queue_adapter.rb

Overview

Includes the setter method for changing the active queue adapter.

Constant Summary

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#queue_adapter=(name_or_adapter) (rw)

Specify the backend queue provider. The default queue adapter is the :async queue. See QueueAdapters for more information.

[ GitHub ]

  
# File 'activejob/lib/active_job/queue_adapter.rb', line 49

def queue_adapter=(name_or_adapter)
  case name_or_adapter
  when Symbol, String
    queue_adapter = ActiveJob::QueueAdapters.lookup(name_or_adapter).new
    queue_adapter.try(:check_adapter)
    assign_adapter(name_or_adapter.to_s, queue_adapter)
  else
    if queue_adapter?(name_or_adapter)
      adapter_name = ActiveJob.adapter_name(name_or_adapter).underscore
      assign_adapter(adapter_name, name_or_adapter)
    else
      raise ArgumentError
    end
  end
end

#queue_adapter?(object) ⇒ Boolean (rw, private)

[ GitHub ]

  
# File 'activejob/lib/active_job/queue_adapter.rb', line 73

def queue_adapter?(object)
  QUEUE_ADAPTER_METHODS.all? { |meth| object.respond_to?(meth) }
end

Instance Method Details

#assign_adapter(adapter_name, queue_adapter) (private)

[ GitHub ]

  
# File 'activejob/lib/active_job/queue_adapter.rb', line 66

def assign_adapter(adapter_name, queue_adapter)
  self._queue_adapter_name = adapter_name
  self._queue_adapter = queue_adapter
end

#queue_adapter (rw)

Returns the backend queue provider. The default queue adapter is :async. See QueueAdapters for more information.

[ GitHub ]

  
# File 'activejob/lib/active_job/queue_adapter.rb', line 34

def queue_adapter
  self.queue_adapter = :async if _queue_adapter.nil?
  _queue_adapter
end

#queue_adapter_name

Returns string denoting the name of the configured queue adapter. By default returns "async".

[ GitHub ]

  
# File 'activejob/lib/active_job/queue_adapter.rb', line 41

def queue_adapter_name
  self.queue_adapter = :async if _queue_adapter_name.nil?
  _queue_adapter_name
end