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