首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多步骤、多层流程中处理故障的流行编程技术是什么?

在多步骤、多层流程中处理故障的流行编程技术是什么?
EN

Stack Overflow用户
提问于 2013-07-10 21:40:44
回答 1查看 39关注 0票数 0

我正在做一个简单的电子商务网站。当用户进行购买时,它会触发两个同步的级联事件。一些数据被写入我们的数据库,购买的信用卡供应商同意(或不),一些更多的数据是我们的数据库,然后发送一封电子邮件。

代码语言:javascript
复制
Step 1. Initial Purchase info recorded on local database
Step 2. Purchase API called on Credit Card vendor
Step 3. Details of transaction written to local database
Step 4. Email receipt/alert sent

当其中一个步骤失败时,是否有经过验证的方法可供处理?例如,如果我们已经写入数据库,但是信用卡交易失败。或者我们已经完成了步骤1和2,但是步骤3失败了。我在试着理解基础知识--比如创建一个“购买前的数据快照”,然后在失败的情况下回滚所有数据,或者创建一个“假购买”对象并假设一切正常,然后将其复制到实际的数据库中,这是不是更谨慎。

欢迎提出任何建议。在这件事上,我远远超出了我的能力范围。

干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-10 21:50:45

我建议数据库信息在插入时是原子上正确的。通过适当的标准化,这是非常直接的。

因此,例如,如果客户输入了他的地址,那么它将被保存到数据库中-即使客户未能下订单,它仍然有效。

同样,如果客户下了订单-即使信用卡交易失败,也是有效的-这将是另一个单独的事实。(这一事实将在允许发货步骤之前进行检查)

电子邮件步骤可能会根据可用的事实更改其消息,但如果电子邮件服务器关闭,您不会想要回滚购买。

因此,我的建议是:很好地标准化,并保留所有发生的信息,然后在流程的关键步骤中进行适当的检查。-请勿回滚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17572180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档