Spec-Zone.ru › Ruby on Rails 4.2

класс ActiveJob::Base

Родительский класс:
Object
Подключённые модули:
ActiveJob::Core, ActiveJob::QueueAdapter, ActiveJob::QueueName, ActiveJob::Enqueuing, ActiveJob::Execution, ActiveJob::Callbacks

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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API