延迟队列
消息进入队列不会被立即消费,过指定时间后再消费
- 其他的消息队列有延迟队列,RabbitMQ 没有,但是可以通过使用 TTL 过期 + 死信队列达到延迟队列的效果
应用场景
- 售后回访,用户购买商品以后,30天给用户发送邮件做一个回访
- 因为不同用户购买时间是不同的,用户购买之后将订单投递到【订单队列】并设置过期时间30天,【订单队列】要绑定死信队列,当30天到期了,该订单就会进入【死信队列】,死信消费者处理该订单,发送回访邮件
- 超时未支付,在淘宝京东等购物时,订单下单会有在某一段时间内支付
- 当下单时已经扣除库存数量,为你保留,如果长时间未支付,该商品总不能一直不卖吧,下单时将订单投递到【订单队列】,30分钟到期进入【死信队列】,消费者判断是否支付,支付就进行下一步操作,未支付,回滚订单