什么是保险和交易程序的正确工作流程"在例外的情况下

时间:2016-10-16 09:33:24

标签: python django exception transactions

在编写Web应用程序时,尤其是Django,有时我们会有一组必须全部成功或全部失败的操作(以确保某种类型的可预测状态)。很明显,当我们使用数据库时,我们可以使用事务。

但在某些情况下,在数据库上下文之外需要这些(全部或全部)约束

(例如,如果付款成功,我们必须发送产品激活码或其他风险客户投诉等)

但是让我们说在一些命运的日子里,由于一些临时的网络错误(持续了1个多小时),send_code()功能一次又一次失败

我应该记录错误,并手动修复问题,例如手动发送邮件

我应该设置某种工作队列,当事情失败时,他们只是回到队列的末尾以便将来重试?

如果日志/排队系统也失败了怎么办? (我现在担心的太多了吗?)

1 个答案:

答案 0 :(得分:1)

我们在公司使用微服务,至少每月一次,我们的微服务有一段时间了。我们在向用户发送产品之前的每个步骤的付款流程和状态都有Transaction模型。如果出现问题或其中一个连接的微服务出现问题,我们会将其标记为status=error并保存到数据库中。然后我们使用cron job来查找并完成这些过程。你需要在开始时尝试一些东西,如果不符合你的需要,可以尝试其他的东西。