Ruby ActiveRecord с возможностью повторной попытки

#ruby #activerecord

#ruby #activerecord

Вопрос:

Я пишу скрипт на ruby, который подключается к внешней базе данных, и я пытаюсь написать скрипт повторной попытки, который при отключении (по какой-то богом забытой причине) продолжит попытки подключения либо для определенного количества попыток, либо умрет.

Я знаю, как записать повторяемую часть в мой скрипт, проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти конкретную ошибку подключения в AR … у кого-нибудь есть подсказка по этой части?

Ответ №1:

Как насчет ConnectionNotEstablished ошибки?

   # Raised when connection to the database could not been established 
  # (for example when <tt>connection=</tt>
  # is given a nil object).
  class ConnectionNotEstablished < ActiveRecordError
  end
  

Вы будете знать, что база данных была отключена, если эта ошибка появится ни с того ни с сего при выполнении какой-либо команды для базы данных (оператор select и т.д.). Оттуда вы можете повторить попытку подключения (и выполнить инструкцию) заданное количество раз.

Я обнаружил эту ActiveRecord ошибку здесь:

https://github.com/rails/rails/blob/master/activerecord/lib/active_record/errors.rb

Комментарии:

1. Нет проблем, я рад, что это то, что вы искали.