класс ActiveJob::Base
Active Job
Объекты Active Job можно настроить для работы с различными фоновыми системами обработки очередей. Чтобы указать используемый адаптер очереди:
ActiveJob::Base.queue_adapter = :inline
Список поддерживаемых адаптеров приведён в разделе Адаптеры очередей.
Объекты 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
Переданные записи сериализуются и десериализуются с помощью Global ID. Дополнительную информацию см. в разделе «Аргументы».
Чтобы поместить задание в очередь для выполнения, как только система обработки очередей освободится:
ProcessPhotoJob.perform_later(photo)
Чтобы поместить задание в очередь для обработки в будущем:
ProcessPhotoJob.set(wait_until: Date.tomorrow.noon).perform_later(photo)
Дополнительную информацию см. в разделе ActiveJob::Core::ClassMethods#set
Задание также можно выполнить немедленно, не отправляя его в очередь:
ProcessPhotoJob.perform_now(photo)
Исключения
-
DeserializationError — класс ошибок, возникающих при десериализации.
-
SerializationError — класс ошибок, возникающих при сериализации.
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.