Spec-Zone.ru › Ruby on Rails 8.1

модуль ActiveJob::Exceptions

Предоставляет поведение для повторного выполнения и удаления заданий при возникновении исключений.

Открытые методы экземпляра

retry_job (options = {}) Показать исходный код
# File activejob/lib/active_job/exceptions.rb, line 158
def retry_job(options = {})
  instrument :enqueue_retry, options.slice(:error, :wait) do
    scheduled_at, queue_name, priority = self.scheduled_at, self.queue_name, self.priority
    enqueue options
  ensure
    self.scheduled_at, self.queue_name, self.priority = scheduled_at, queue_name, priority
  end
end

Планирует повторное выполнение задания. Это удобно использовать вместе с rescue_from. Перехватив исключение из задания, можно попросить Active Job повторить его выполнение.

Параметры

  • :wait — ставит задание в очередь с указанной задержкой в секундах

  • :wait_until — ставит задание в очередь на указанное время

  • :queue — ставит задание в указанную очередь

  • :priority — ставит задание в очередь с указанным приоритетом

Примеры

class SiteScraperJob < ActiveJob::Base
  rescue_from(ErrorLoadingSite) do
    retry_job queue: :low_priority
  end

  def perform(*args)
    # raise ErrorLoadingSite if cannot scrape
  end
end

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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