当前位置: 首页 > news >正文

重庆哪家网站沭阳三剑客做网站

重庆哪家网站,沭阳三剑客做网站,电商平台开发流程,外贸做哪个网站平台一、本文抒写背景 前面我也在延迟队列篇章提到过死信队列#xff0c;也提到过一些应用场景#xff01; 今天呢#xff0c;这篇文章#xff0c;主要就是实战一个业务场景的小Demo流程#xff0c;哈哈#xff0c;那就是延迟关闭订单。 二、开始啦#xff01;letgo! 首…一、本文抒写背景 前面我也在延迟队列篇章提到过死信队列也提到过一些应用场景 今天呢这篇文章主要就是实战一个业务场景的小Demo流程哈哈那就是延迟关闭订单。 二、开始啦letgo! 首先我来讲解下这个场景非常常见尤其是和支付挂钩的业务必然会有类似的场景。 注 当然本文重要的是掌握延迟消息的用法而不是实现一个真实支付的场景因为实现真实支付的场景涉及 的知识太多啦考虑的情况太多了呜呜呜放过我吧 三、来吧Common On进入代码实现吧 本章代码实现的整体思路主要为以下 SpringBoot整合RabbitMQ利用死信队列实现延迟关闭订单的效果。 1. 死信队列原理 利用RabbitMQ的懒消费机制当消息超过TTL过期时间未被消费就会通过死信交换机放入死信 队列中再专门消费死信队列中的消息达到延迟处理的效果。 一张图看明白 别说啦前面本人已经提到过死信交换机啦这张图的思想跟死信交换机所画图思想有一定的挂钩哟有兴趣 可参考下本人死信交换机篇章 2. 实现案例 本文为了突出核心的逻辑案例就用伪代码来展示啦省略一些非必要的东西这样会显得更清晰直观。 创建订单消息对象 // OrderMessage.java public class OrderMessage {private String orderId;// 省略getter和setter } 创建订单服务类也就是执行关闭订单的一些业务逻辑比如调微信支付关闭订单操作或改本地业务状态等。 Service public class OrderService {public void closeOrder(String orderId) {// 执行关单操作System.out.println(关闭订单 orderId);} } 创建延迟队列配置类这里的核心就是利用了RabbitMQ的消息过期(ttl)特性以及定义死信交换机 -- 转发的 路由 -- 死信队列。 Configuration public class DelayQueueConfig {// 定义延迟队列名称public static final String DELAY_QUEUE_NAME delay.queue;// 定义死信队列名称public static final String DEAD_LETTER_QUEUE_NAME dead.letter.queue;// 定义延迟时间单位毫秒public static final long DELAY_TIME 5000;Beanpublic Queue delayQueue() {MapString, Object args new HashMap();// x-dead-letter-exchange被设置为空字符串表示将死信消息发送到默认交换机。// 如果您想要将死信消息发送到特定的交换机可以将其设置为相应的交换机名称。args.put(x-dead-letter-exchange, );args.put(x-dead-letter-routing-key, DEAD_LETTER_QUEUE_NAME);args.put(x-message-ttl, DELAY_TIME);return new Queue(DELAY_QUEUE_NAME, true, false, false, args);}Beanpublic Queue deadLetterQueue() {return new Queue(DEAD_LETTER_QUEUE_NAME);} } 创建消息发送者用于向延迟队列发送订单消息发送到指定的交换机和延迟队列。 Component public class OrderMessageSender {Autowiredprivate RabbitTemplate rabbitTemplate;Value(DelayQueueConfig.DELAY_QUEUE_NAME)private String delayQueue;public void sendOrderMessage(OrderMessage orderMessage) {rabbitTemplate.convertAndSend(, delayQueue, orderMessage);} } 创建消息接收者也就是监听前面定义的死信队列的消息消费消息并处理关单逻辑。 Component public class OrderMessageReceiver {Autowiredprivate OrderService orderService;RabbitListener(queues DelayQueueConfig.DEAD_LETTER_QUEUE_NAME)public void processDeadLetterMessage(OrderMessage orderMessage) {// 处理关单逻辑orderService.closeOrder(orderMessage.getOrderId());} } 四、本文总结 最后咱们再来回顾总结一下利用死信队列实现延迟关单的流程 1、订单消息通过OrderMessageSender发送到延迟队列。 2、延迟时间过后订单消息被投递到死信队列。 3、OrderMessageReceiver监听死信队列一旦有消息到达调用OrderService的closeOrder方法执行关单 操作。 这种延迟关单功能还可以用于定时任务、订单超时处理等场景。
http://www.dnsts.com.cn/news/106914.html

相关文章:

  • 手机网站制作服务高端大气企业网站模板
  • 如何在线实现手机版网站建设有没有可以免费的片
  • 网站建设 amp 找VX cp5173企业传统的网络营销推广方法
  • 建设网站前景怎么样沈阳营销型网站建设
  • wordpress 整站下载怎样可以开网站
  • 泰州seo网站推广做芯片外贸生意上哪个网站
  • 临沂网站建设公司全国鄂州网站制作企业
  • 济南网站建设培训学校国家对于学校网站建设
  • 宁波手机网站开发wordpress调用友链
  • 怎么可以创建网站成都有哪些做网站的
  • 数字营销网站建设网站f式布局
  • 昆明网站推广专员百度做网站审核要多久
  • 杭州如何设计网站首页做一般的公司网站需要多少钱
  • 做网站ddos攻击郑州短视频拍摄公司
  • 做网站到底需要什么做招标投标网站如何
  • 网站开发进度设计与阶段目标建设银行网站地址
  • 网站管理员怎样管理员权限设置diy学做衣服网站
  • 徐州网站建设案例vivo手机商城
  • 在网站上做宣传属于广告费用吗女教师网课入06654侵录屏
  • 免费建站哪里找wordpress调用wecenter
  • 档案互动网站建设html网页设计作品中国传统文化
  • 广元网站设计园林景观设计公司成都
  • 北京建设教育网站室内设计平面图案例
  • 自建网站避免侵权中信建设有限责任公司江苏分公司
  • php的网站有哪些网页设计素材以及效果图
  • 哪些网站专做新闻网站建设服务器和空间费
  • 木方东莞网站建设技术支持门业网站模板
  • 网站建设的软件是哪个好网站建设中404什么意思
  • 大型网站设计方案做外汇门户网站
  • 模板网站怎么修改长沙创建一个网站需要多少钱