Class: ActiveJob::Base

Inherits:
Object
  • Object
show all
Includes:
Callbacks, Core, Enqueuing, Exceptions, Execution, Instrumentation, Logging, QueueAdapter, QueueName, QueuePriority, TestHelper::TestQueueAdapter, Timezones, Translation
Defined in:
lib/active_job/base.rb

Overview

Active Job Base

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 queuing 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

  • DeserializationError - Error class for deserialization errors.

  • SerializationError - Error class for serialization errors.

Instance Attribute Summary

Attributes included from Core

#_scheduled_at_time, #arguments, #enqueue_error, #enqueued_at, #exception_executions, #executions, #job_id, #locale, #priority, #provider_job_id, #queue_name, #scheduled_at, #serialized_arguments, #successfully_enqueued, #timezone

Method Summary

Methods included from Logging

#perform_now

Methods included from Instrumentation

#perform_now

Methods included from Exceptions

#retry_job

Methods included from Execution

#perform, #perform_now

Methods included from Enqueuing

#enqueue

Methods included from QueuePriority

#priority

Methods included from QueueName

#queue_name

Methods included from Core

#deserialize, #initialize, #serialize, #set, #successfully_enqueued?