rails--rails/activejob/lib/active_job/base.rb

80 lines
2.3 KiB
Ruby

# frozen_string_literal: true
require "active_job/core"
require "active_job/queue_adapter"
require "active_job/queue_name"
require "active_job/queue_priority"
require "active_job/enqueuing"
require "active_job/execution"
require "active_job/callbacks"
require "active_job/exceptions"
require "active_job/log_subscriber"
require "active_job/logging"
require "active_job/instrumentation"
require "active_job/timezones"
require "active_job/translation"
module ActiveJob # :nodoc:
# = 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 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.
class Base
include Core
include QueueAdapter
include QueueName
include QueuePriority
include Enqueuing
include Execution
include Callbacks
include Exceptions
include Instrumentation
include Logging
include Timezones
include Translation
ActiveSupport.run_load_hooks(:active_job, self)
end
end