如何处理库存和并发

问题描述 投票:0回答:2

应对看似常见的有限库存和订单的情况有哪些策略?

如果还剩一件商品,并且两个人同时尝试购买。最后付款的人怎么处理?

concurrency e-commerce
2个回答
3
投票

当用户将限量供应的商品添加到购物车时,请将该商品保留一小段时间(例如 15 分钟)。如果他们在窗口内付款,则该物品属于他们,否则将取消保留并将物品返回到池中。 (在保留期间,该项目被视为对其他用户“不可用”。)

AFAIK,这是非常标准的技术 - 例如,我见过 Gilt 这样做。


0
投票

根据用例,假设您想要以先到先得的方式分配库存,并希望确保库存不会出现负数,那么以下方法就可以工作。

update inventories set quantity = (qty-@qty) where inventory_id = 101 and (quantity-@qty) >= 0;
© www.soinside.com 2019 - 2024. All rights reserved.