在服务器备份期间防止付款

Prevent Payments during server backup

我在一个购物网站上工作,用户被重定向到贝宝付款。

在服务器上,我有一个计划的备份任务 运行 每月一次,持续大约 15 分钟。在备份期间,网站将被暂停。

但是,如果在我的服务器暂停之前用户刚刚被重定向到 paypal,则存在用户付款的风险,但购买的商品不会存储在数据库中,因为我的服务器已暂停。

处理这种情况有哪些选择?我应该写一点 PHP 来防止在服务器备份前 10 分钟购买吗?还有其他常见的选择吗?谢谢!

如果您想避免任何停机时间,您可以将购买信息存储在一个队列中,与您定期备份的 "main" 服务器分开,并有一个从该队列读取的作业,存储在您的 "main" 服务器中。使用不需要备份的持久队列(只要尽快使用),这样它就可以在服务器关闭时接受数据。

备份完成后,服务器可以读取队列中存储的任何信息并进行处理。

如果您在备份前 10 分钟停止重定向到 PayPal,如果用户在备份前 11 分钟被重定向会怎样?如果备份时间比您最初认为的安全时间间隔多 2 分钟,会发生什么情况?不要那样做:)