【发布时间】:2016-10-16 09:33:23
【问题描述】:
在编写 Web 应用程序时,尤其是 Django,有时我们有一组动作必须全部成功或全部失败(以确保某种可预测的状态)。现在很明显,当我们使用数据库时,我们可以使用事务。
但在某些情况下,在数据库上下文之外需要这些(全部或全部)约束
(例如,如果付款成功,我们必须发送产品激活码,否则可能会有客户投诉等风险)
但是让我们说在某个决定性的日子里,send_code() 函数由于一些临时的网络错误(持续了 1 个多小时)而一次又一次地失败
我是否应该记录错误并手动修复问题,例如手动发送邮件
我应该设置某种工作队列,当事情失败时,他们只是回到队列的末尾以供将来重试?
如果日志记录/排队系统也出现故障怎么办? (我现在是不是太担心了?)
【问题讨论】:
标签: python django exception transactions