我有一个接触形式的网站。用户提交的姓名,电子邮件和消息,该网站的邮件我的详细信息。

很偶然我的服务器有问题,它的电子邮件系统,因此用户得到一个错误,这些联系方式都将丢失。 (不要说:获得更好的服务器,任何服务器都可以有现在的电子邮件往下走,然后和我们做得到了很多意见书)。

我想实现,可以存储用户的细节,如果邮件发送功能错误代码返回系统。然后在每个进一步送检,检查是否有任何存储的意见书,并尝试发送了他们对我的。

但是,如何存储数据?

我使用python所以我想过使用货架(单个文件半-数据库)。也许有人会提出一个更好的数据格式? (我认为一个完整的数据库的解决办法是矫枉过正。)

我用一个文件的方式看问题是比赛条件的:在同一时间两个或多个失败的邮件会导致两个编辑导致数据损坏的数据文件

所以,我们要做什么呢?多文件解决方案,文件锁定或其他什么东西?

有帮助吗?

解决方案

当我们实现了电子邮件在我们的环境中发送功能,我们这样做是处于分离的方式。因此,例如,用户将提交其会被存储在数据库中他们的数据。然后,我们有运行,查询数据库,并发出电子邮件单独的服务。如果有任何过电子邮件服务器问题,这样一来,该服务将只稍后再试,数据和用户的信心是永远不会丢失。

其他提示

尝试源码。它在标准库中已经默认 python绑定并应负载的有用的工作水平(左右我所知)

您可以按照建议,使用SQLite这一点。主要的问题是:如何芒是“很多意见书”?我把它低于几%的第二本会工作。否则,数据库文件将被锁定所有的时间和你有另一个问题。

但你可以把它也保持它朴实无华,愚蠢和简单:将文件写入到磁盘中。 对于每一个sumission文件写入到一个临时目录(如邮件服务器已关闭)。然后添加几行到邮件服务器的启动脚本读取目录,并发出邮件。没有数据库,没有锁定问题和如果使用针对其配额被设定的目录(或具有固定尺寸的虚拟盘)你不应该遇到任何问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top