В ActiveJob, как поймать любое исключение

Документы ActiveJob для обработки исключений предоставляют этот пример того, как выполнять обработку исключений в контексте работа:

class GuestsCleanupJob < ActiveJob::Base
  queue_as :default

  rescue_from(ActiveRecord::RecordNotFound) do |exception|
   # Do something with the exception
  end

  def perform
    # Do something later
  end
end

Я использую эту технику в приложении, которое создаю и фиксирую определенные исключения. Мой вопрос в том, как фиксировать любые исключения?

Я фиксирую различные типы исключений и выполняю одну и ту же процедуру в каждом случае, поэтому я хотел бы ОСУШИТЬ свой код, а также, в моей текущей реализации, некоторые исключения игнорируются, что означает, что в некоторых случаях моя работа не выполняется тихо.

Как зафиксировать любое общее исключение с помощью ActiveJob?


person metahamza    schedule 24.08.2015    source источник


Ответы (1)


Попробуй это

class GuestsCleanupJob < ActiveJob::Base
  ...

  rescue_from(StandardError) do |exception|
   # Do something with the exception
  end

  ...
end
person Alex Tonkonozhenko    schedule 24.08.2015
comment
Спасибо, это правильная техника! В моем случае в самом блоке обработки исключений было некорректное выражение, которое вызвало тихую ошибку - person metahamza; 04.10.2015
comment
Что-то не хватает, это не работает с Rails 5.2.1 для меня - person Amol Pujari; 26.11.2018