gpt4 book ai didi

mysql - 管理商店结帐流程的并发性

转载 作者:行者123 更新时间:2023-11-29 23:05:34 25 4
gpt4 key购买 nike

我整天都在阅读,寻找在电子商务结账流程中管理并发的正确方法,但我仍然不确定如何开发它。

场景

用户从商店中选择一个产品,转到结账页面并使用信用卡付款。该网站处理付款检查库存可用性并使用网络服务以及用户信用卡数据。 Web服务最终返回结果,站点显示成功页面(或失败页面)。

最终结帐和付款验证流程

  • 用户开始最后的结账步骤
  • 我检查产品是否有库存
  • 如果产品有库存,我会调用支付网络服务
  • 如果网络服务结果为“OK”,我将显示成功页面

听起来很简单,但我的问题是我获取产品库存的方式:我每次都必须计算它。我有两个表产品销售(仅作为示例表),因此每次销售完成时,都会添加一个链接产品的销售行它属于。在产品表中,我有产品可以销售的最大次数,例如初始库存。

例如,我的产品 X 初始库存为 99,并且两个用户开始最后一个可用单位的结账流程。我检查当前已售出的单位 = 98。好的,两个用户都可以购买它,我调用网络服务,最后两个用户都购买并支付产品。

知道在这种情况下如何处理并发吗?

顺便说一句:我正在使用 MySQL 和 InnodB

最佳答案

我最终实现了乐观离线锁定 ( http://martinfowler.com/eaaCatalog/optimisticOfflineLock.html ) 模式,因此一次只有一个用户可以购买一件商品。如果用户放弃事务,我必须非常小心地管理超时的死用户连接。

关于mysql - 管理商店结帐流程的并发性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28307268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com