Как мне повторить все транзакции activerecord в рельсах? - PullRequest
0 голосов
/ 29 мая 2020

Как мне go повторить попытку всей транзакции ActiveRecord в рельсах в случае сбоя соединения mysql в течение нескольких секунд?

До сих пор я пытался повторить только последний запрос, который не удался, переопределив метод выполнения ActiveRecord::ConnectionAdapters::Mysql2Adapter

class ActiveRecord::ConnectionAdapters::Mysql2Adapter
def execute(*args)
    begin
      super(*args)
    rescue ActiveRecord::StatementInvalid => e
      retry
    end
  end
end

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

Могу ли я получить сведения о текущей транзакции и просто повторить ее с самого начала?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...