class

ActiveJob::Base

v5.1.7 - Show latest stable - Superclass: Object

Active Job

Active Job objects can be configured to work with different backend queuing frameworks. To specify a queue adapter to use:

ActiveJob::Base.queue_adapter = :inline

A list of supported adapters can be found in QueueAdapters.

Active Job objects can be defined by creating a class that inherits from the ActiveJob::Base class. The only necessary method to implement is the “perform” method.

To define an Active Job object:

class ProcessPhotoJob < ActiveJob::Base
  def perform(photo)
    photo.watermark!('Rails')
    photo.rotate!(90.degrees)
    photo.resize_to_fit!(300, 300)
    photo.upload!
  end
end

Records that are passed in are serialized/deserialized using Global ID. More information can be found in Arguments.

To enqueue a job to be performed as soon as the queueing system is free:

ProcessPhotoJob.perform_later(photo)

To enqueue a job to be processed at some point in the future:

ProcessPhotoJob.set(wait_until: Date.tomorrow.noon).perform_later(photo)

More information can be found in ActiveJob::Core::ClassMethods#set

A job can also be processed immediately without sending to the queue:

ProcessPhotoJob.perform_now(photo)

Exceptions

Included modules

  • ActiveJob::Callbacks
  • ActiveJob::Core
  • ActiveJob::Enqueuing
  • ActiveJob::Exceptions
  • ActiveJob::Execution
  • ActiveJob::Logging
  • ActiveJob::QueueAdapter
  • ActiveJob::QueueName
  • ActiveJob::QueuePriority
  • ActiveJob::Translation

Files

  • activejob/lib/active_job/base.rb