Rails sucker punch - есть ли способ обрабатывать ошибки, повторяя выполненное действие

В моем приложении я отправляю электронные письма асинхронно с самоцветом sucker punch.

Иногда почтовый сервер очень не отвечает, и я получаю Net::ReadTimeout исключения.

Мне интересно, есть ли лучший способ обработки ошибок, чем делать что-то вроде этого

class DataJob
  include SuckerPunch::Job

  def perform(data)
    begin
      retries ||= 0

      puts data
    rescue Net::ReadTimeout
      sleep 10
      retry if (retries += 1) < 3
    end 
  end
end

В своем коде я интегрировал sucker punch с активной работой, поэтому я просто звоню

Mailer.some_notification(my_object).deliver_later

что потребует некоторого рефакторинга. Это не проблема вообще. Я просто хотел включить эту информацию.

0 ответов

Другие вопросы по тегам