класс ActiveJob::Base
Базовый класс Active Job
Объекты Active Job могут быть настроены для работы с различными фреймворками очереди задач. Чтобы указать адаптер очереди, который нужно использовать:
ActiveJob::Base.queue_adapter = :inline
Список поддерживаемых адаптеров можно найти в QueueAdapters.
Объекты Active Job могут быть определены путем создания класса, который наследуется от класса ActiveJob::Base. Единственный необходимый метод для реализации — метод «perform».
Чтобы определить объект Active Job:
class ProcessPhotoJob < ActiveJob::Base
def perform(photo)
photo.watermark!('Rails')
photo.rotate!(90.degrees)
photo.resize_to_fit!(300, 300)
photo.upload!
end
end
Записи, которые передаются, сериализуются/десериализуются с помощью глобального идентификатора. Дополнительную информацию можно найти в Arguments.
Чтобы добавить задачу в очередь для выполнения, как только система очереди освободится:
ProcessPhotoJob.perform_later(photo)
Чтобы добавить задачу в очередь для обработки в какой-то момент в будущем:
ProcessPhotoJob.set(wait_until: Date.tomorrow.noon).perform_later(photo)
Дополнительную информацию можно найти в ActiveJob::Core::ClassMethods#set
Задача также может быть обработана немедленно, без отправки в очередь:
ProcessPhotoJob.perform_now(photo)
Exceptions
-
DeserializationError- Класс ошибок десериализации. -
SerializationError- Класс ошибок сериализации.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.