一、需求背景
当用户在商城上进行下单支付,我们假设如果8小时没有进行支付,那么就后台自动对该笔交易的状态修改为订单关闭取消,同时给用户发送一份邮件提醒。那么我们应用程序如何实现这样的需求场景呢?在之前的《C# Redis缓存过期实现延迟通知实战演练》分享课程中阿笨最后总结的时候说过Redis Pub/Sub是一种并不可靠地消息机制,他不会做信息的存储,只是在线转发,那么肯定也没有ack确认机制,另外只有订阅段监听时才会转发!我们是否有更好的方式去实现呢?今天给大家分享的比较好的解决方案就是通过RabbitMQ的TTL(time to live)和DLX(Dead-Letter-Exchange)来实现延迟任务。
1.1、本次分享课程适合人群如下:
1、有一定的NET开发基础并对RabbitMQ技术有一定了解和认识。
2、喜欢阿笨的干货分享课程的童鞋们。
1.2、一句话总结今天我们要学习的目标和成果?
C#如何通过RabbitMQ如何实现延迟队列功能。
如果您对本次《C#RabbitMQ延迟队列功能实战项目演练》分享课程感兴趣的话,那么请跟着阿笨一起学习吧。
废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
二、场景介绍
2.1、什么是延迟队列?
2.2、使用RabbitMQ实现延迟任务应用场景
三、思路讲解
3.1、实现思路
3.2、实现方案
四、实现步骤
1)、基于队列方式实现延迟队列(消息队列中所有消息的过期TTL一样)
2)、基于消息方式实现延迟队列(消息队列中单个消息的过期TTL不一样)
五、课后思考与总结
原文地址:https://www.cnblogs.com/51net/p/10410367.html
时间: 2024-11-08 04:20:24