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
что потребует некоторого рефакторинга. Это не проблема вообще. Я просто хотел включить эту информацию.