#rollback
#Откат
Вопрос:
У меня есть система, которая по запросу выполняет такие действия, как извлечение zip, создание каталогов, вставка информации из базы данных
Это может привести к сбою по любой причине на любом этапе, возможно, из-за разрешений, неправильного формата файла, ошибки базы данных. Я не хочу, чтобы система выполнялась частично из-за каких-либо исключений.
Как именно я мог бы реализовать систему отката? Я имею в виду, что для каждого действия отправляйте в стек или базу данных выполнение строковой функции противоположного действия, а при любом сбое извлекайте ее и выполняйте оценку.
Есть какой-либо другой встроенный способ или какие-либо советы, прежде чем я начну это?
Ответ №1:
Я запускаю эту некоторую ситуацию, лучшее, что я мог придумать, это выполнить проверки во время процесса (извлечь почтовый индекс, протестировать подключение к базе данных, проверить, доступно ли имя пользователя и так далее), В конце процесса я применяю все необходимые функции (отправить данные, зарегистрировать пользователя …).