Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

秒杀接口库存判断问题 #14

Open
lt-dh opened this issue Jan 17, 2024 · 1 comment
Open

秒杀接口库存判断问题 #14

lt-dh opened this issue Jan 17, 2024 · 1 comment

Comments

@lt-dh
Copy link

lt-dh commented Jan 17, 2024

我简单看了一下秒杀接口这里
--1、判断是否已经秒杀到了
--2、预减库存
--3、入mq
----4、判断商品数量
----5、判断是否已经秒杀到了
----6、商品库存减一、添加信息进订单、插入秒杀表
疑问:这里上层出现了redis预减库存,但真实减去库存是第六步数据库,这就会出现数据库还有库存,但是redis已经没有库存的情况。
比如:我同一个用户第一次秒杀成功,在订单没生成的时候继续秒杀。这就会出现redis减去了两次,但是在数据库中只减去了一次(极端情况下,数据库减去两次,同一个用户生成两个订单)。
我只是简单的看了下,没有具体运行操作。验证的话,直接在第六步写库之前写一个睡眠延长订单入库时间,请帮我验证并解答一下。

@CxkKG
Copy link

CxkKG commented Dec 2, 2024

确实会有缓存和数据库不一致的问题,写数据库有唯一性检验,所以有可能会出现库存有剩余的情况

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants