目录
- 延迟消息
- 需求理解:
- 思路:
- 代码:
- 发送延迟消息
- 消费延迟消息:
- 1、订单支付状态:
- 2、回补真实库存:
- 3、回补预库存:
- 4、修改本地标识:
- 测试:
- 清除MQ数据:
- 期望结果:
- 实际结果:
- 问题:
- 异步下单失败
- 需求1:
- 代码:
- 发送消息:
- 消费消息:
- 测试:
- 需求2:
延迟消息
需求理解:
用户成功秒杀后,还没马上进行支付,一般支付时间是有限制的,如果用户15分钟后还没有进行支付,那么我们就发送消息,判断订单状态是否支付,未支付就回补真实库存,回补预库存,修改本地标识等操作
思路:
前面当用户秒杀成功后,会发送一条消息到MQ,然后消费者消费到这条消息后,就会马上通知用户秒杀成功。
这个时候,我们需要再写一个消费者类,同样是来消费这条消息的,只不过是延时发送消息。
理解下发送消息和消费消息的topic和tag
第1点: 这里是用户点击秒杀,然后往MQ发送一条数据,然后创建一个消费者来消费这条秒杀信息。
第2点: 这个是秒杀成功后,再发送一条秒杀结果的消息到MQ,然后消费者消费到这条消息之后,就通过websocket把秒杀结果发给用户。