Class: ActiveJob::Base
- Inherits:
-
Object
- Object
- ActiveJob::Base
- Includes:
- Callbacks, Core, Enqueuing, Exceptions, Execution, Instrumentation, Logging, QueueAdapter, QueueName, QueuePriority, 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
Methods included from Instrumentation
Methods included from Exceptions
Methods included from Execution
Methods included from Enqueuing
Methods included from QueuePriority
Methods included from QueueName
Methods included from Core
#deserialize, #initialize, #serialize, #set, #successfully_enqueued?