Как мне go повторить попытку всей транзакции ActiveRecord в рельсах в случае сбоя соединения mysql в течение нескольких секунд?
До сих пор я пытался повторить только последний запрос, который не удался, переопределив метод выполнения ActiveRecord::ConnectionAdapters::Mysql2Adapter
class ActiveRecord::ConnectionAdapters::Mysql2Adapter
def execute(*args)
begin
super(*args)
rescue ActiveRecord::StatementInvalid => e
retry
end
end
end
Однако это приводит к несогласованным транзакциям, из-за которых я решил, что лучше, если я повторю всю транзакцию, а не только последний запрос.
Могу ли я получить сведения о текущей транзакции и просто повторить ее с самого начала?