Sidekiq / Rails: как перехватить исключение и повторить попытку - PullRequest
0 голосов
/ 05 марта 2020

У меня есть задания sidekiq под управлением Selenium. В случае сбоя задания мне нужно

  1. перехватить исключение, чтобы отключить драйвер селена (в противном случае все поступающие задания также будут обрабатывать sh),
  2. обработчик ошибок уведомления ( Sentry)
  3. Попробуйте Sidekiq еще раз

Сегодня я могу поймать и уведомить, но, поймав исключение, Sidekiq не будет повторять задание.

Мой вопрос похож на этот но а) он не получил ответа и б) что пользователь не хотел уведомлять свою службу обработки ошибок.

Как мне заставить Sidekiq повторить задание, даже если я поймал исключение?

1 Ответ

2 голосов
/ 05 марта 2020

Как насчет повторного повышения исключения? Это будет что-то вроде этого:

def perform
  # perform_code
rescue ErrorClass => error
  # handle error
  raise error
end

Таким образом, sidekiq собирается повторить эту задачу (потому что это вызывает ошибку), но код обработки также будет выполнен.

...