123456789_123456789_123456789_123456789_123456789_

Module: ActiveJob::Enqueuing

Relationships & Source Files
Namespace Children
Modules:
Extension / Inclusion / Inheritance Descendants
Included In:
ActionMailer::DeliveryJob, ActionMailer::MailDeliveryJob, ActionMailer::Parameterized::DeliveryJob, Base, ::ActiveRecord::DestroyAssociationAsyncJob
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: activejob/lib/active_job/enqueuing.rb

Overview

Provides behavior for enqueuing jobs.

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

Instance Method Summary

Instance Method Details

#enqueue(options = {})

Enqueues the job to be performed by the queue adapter.

Options

  • :wait - Enqueues the job with the specified delay

  • :wait_until - Enqueues the job at the time specified

  • :queue - Enqueues the job on the specified queue

  • :priority - Enqueues the job with the specified priority

Examples

my_job_instance.enqueue
my_job_instance.enqueue wait: 5.minutes
my_job_instance.enqueue queue: :important
my_job_instance.enqueue wait_until: Date.tomorrow.midnight
my_job_instance.enqueue priority: 10
[ GitHub ]

  
# File 'activejob/lib/active_job/enqueuing.rb', line 48

def enqueue(options = {})
  self.scheduled_at = options[:wait].seconds.from_now.to_f if options[:wait]
  self.scheduled_at = options[:wait_until].to_f if options[:wait_until]
  self.queue_name   = self.class.queue_name_from_part(options[:queue]) if options[:queue]
  self.priority     = options[:priority].to_i if options[:priority]
  successfully_enqueued = false

  run_callbacks :enqueue do
    if scheduled_at
      queue_adapter.enqueue_at self, scheduled_at
    else
      queue_adapter.enqueue self
    end

    successfully_enqueued = true
  end

  if successfully_enqueued
    self
  else
    false
  end
end