модуль ActiveJob::Exceptions
Предоставляет поведение для повторного выполнения и удаления заданий при возникновении исключений.
Открытые методы экземпляра
# 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.