У меня есть сайт с контактной формой. Пользователь отправляет имя, адрес электронной почты и сообщение, а сайт присылает мне подробности по электронной почте.
Очень редко мой сервер сталкивается с проблемой электронной системы, поэтому пользователь получает сообщение об ошибке, и эти контактные данные теряются. (Не говорите: получите лучший сервер, на любом сервере время от времени может происходить отказ электронной почты, и мы получаем много заявок).
Я хотел бы реализовать систему, которая могла бы хранить данные пользователя, если функция отправки почты возвращается с кодом ошибки. Затем при каждой последующей отправке проверяйте наличие сохраненных отправлений и попробуйте отправить их мне.
Но как хранить данные?
Я использую Python, поэтому я подумал об использовании shelve (полу-база данных в одном файле). Или, может быть, кто-то может предложить лучший формат данных? (Я думаю, что полное решение для базы данных было бы излишним.)
Проблема, с которой я сталкиваюсь при использовании одного файла, заключается в условиях гонки : два или более сбойных электронных писем одновременно вызовут два изменения файла данных, что приведет к повреждению данных.
Так что же делать? Многофайловое решение, блокировка файлов или что-то еще?