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

晋中网站建设价格有什么网站做悬赏的 能挣钱

晋中网站建设价格,有什么网站做悬赏的 能挣钱,手机端h5网站模板下载,网站建设营销技巧1、简述 在支付系统中#xff0c;订单支付的超时自动撤销是一个非常常见的业务场景。通常用户未在规定时间内完成支付#xff0c;系统会自动取消订单#xff0c;释放相应的资源。本文将通过利用 RabbitMQ 的 死信队列#xff08;Dead Letter Queue, DLQ#xff09;来实现…1、简述 在支付系统中订单支付的超时自动撤销是一个非常常见的业务场景。通常用户未在规定时间内完成支付系统会自动取消订单释放相应的资源。本文将通过利用 RabbitMQ 的 死信队列Dead Letter Queue, DLQ来实现支付超时自动撤销功能并详细讲解如何在 Java 中进行实现。 2、什么是死信队列 死信队列是 RabbitMQ 中的一个重要功能当消息在某个队列中变成“死信”时可以被发送到另一个特殊的队列这个队列就是死信队列。消息变成死信的情况有三种 消息被拒绝basic.reject 或 basic.nack并且 requeuefalse。消息的 TTLTime to Live过期。队列达到最大长度无法再存入新消息。 通过死信队列我们可以处理一些特殊的业务逻辑例如订单支付超时自动撤销。 3、实现过程 我们将为每个新创建的支付订单设置一个超时时间例如 30 分钟在订单支付的过程中将订单的消息发送到 RabbitMQ。消息在 RabbitMQ 中设置一定的 TTL生存时间。如果用户在超时时间内完成支付消息会被正常处理如果超时未支付消息会成为“死信”被转移到死信队列从而触发订单撤销的逻辑。 3.1 环境准备 首先在 pom.xml 中添加 RabbitMQ 相关依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId /dependency3.2 RabbitMQ 配置 在 application.yml 中添加 RabbitMQ 的连接配置 spring:rabbitmq:host: localhostport: 5672username: guestpassword: guest3.3 配置普通队列和死信队列 我们需要配置两个队列一个是正常的支付订单队列另一个是死信队列。 支付订单队列用于接收支付订单的消息。死信队列接收从支付订单队列中转移过来的超时未处理的消息。 import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class RabbitMQConfig {// 正常交换机Beanpublic DirectExchange orderExchange() {return new DirectExchange(order-exchange);}// 死信交换机Beanpublic DirectExchange deadLetterExchange() {return new DirectExchange(dead-letter-exchange);}// 正常队列Beanpublic Queue orderQueue() {return QueueBuilder.durable(order-queue).withArgument(x-dead-letter-exchange, dead-letter-exchange) // 绑定死信交换机.withArgument(x-dead-letter-routing-key, dead-letter-routing-key) // 死信路由键.withArgument(x-message-ttl, 1800000) // 消息的TTL30分钟.build();}// 死信队列Beanpublic Queue deadLetterQueue() {return QueueBuilder.durable(dead-letter-queue).build();}// 绑定正常队列和交换机Beanpublic Binding orderBinding(Queue orderQueue, DirectExchange orderExchange) {return BindingBuilder.bind(orderQueue).to(orderExchange).with(order-routing-key);}// 绑定死信队列和死信交换机Beanpublic Binding deadLetterBinding(Queue deadLetterQueue, DirectExchange deadLetterExchange) {return BindingBuilder.bind(deadLetterQueue).to(deadLetterExchange).with(dead-letter-routing-key);} }3.4 发送订单支付消息 在订单创建时我们将消息发送到 RabbitMQ设置 TTL超时时间 import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class OrderService {Autowiredprivate RabbitTemplate rabbitTemplate;public void createOrder(String orderId) {// 模拟创建订单的逻辑System.out.println(订单创建成功订单ID orderId);// 发送订单消息到RabbitMQrabbitTemplate.convertAndSend(order-exchange, order-routing-key, orderId);System.out.println(订单消息已发送等待支付超时或支付完成处理...);} }3.5 监听死信队列实现超时自动撤销订单 当订单超时未支付消息将转移到死信队列我们通过监听死信队列实现订单撤销逻辑 import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;Component public class DeadLetterQueueListener {RabbitListener(queues dead-letter-queue)public void handleExpiredOrder(String orderId) {// 处理超时订单撤销的逻辑System.out.println(订单支付超时自动撤销订单订单ID orderId);// TODO: 更新数据库订单状态为已取消} }4、总结 通过使用 RabbitMQ 的死信队列我们可以轻松实现支付超时自动撤销的功能。具体流程如下 创建订单时将订单消息发送到 RabbitMQ并为消息设置 TTL。如果用户在规定时间内完成支付系统处理消息订单正常完成。如果消息在 TTL 时间内未被处理消息进入死信队列触发自动撤销逻辑。 利用 RabbitMQ 死信队列可以确保超时订单得到及时处理避免资源浪费同时还能保证系统的高并发处理能力。 这套方案可以扩展应用于任何有类似超时要求的业务场景如购物车超时、订单确认超时等。
http://www.zqtcl.cn/news/114089/

相关文章:

  • 网站建设所需人员世界各国o2o响应式网站
  • 成都网站设计最加科技企业宣传片观后感
  • 人社门户网站建设方案非官方网站建设
  • 深圳系统网站开发做家具定制的设计网站
  • 网站制作学费多少钱网络推广的常用方法
  • 个人作品网站模板百度上做网站需要钱吗
  • 苏州网站建设行业研究思路 网站建设
  • 金泉网做网站找谁网站的结构布局
  • 网站开发摊销年限柳州网站建设哪家
  • 佛山市和城乡建设局网站首页武建安装公司新闻
  • 如何宣传商务网站网页制作与设计自考
  • 在国内的服务器上建设国外网站响应式单页网站模板
  • 平湖市住房建设局网站国外代理ip
  • 铁路建设监理网站地推项目发布平台
  • 我的世界做指令的网站网站如何在推广
  • 过年做那个网站致富盘锦网站建设vhkeji
  • 网站semseo先做哪个关键词投放
  • 药品招商网站大全南阳做网站公司电话
  • 优秀手机网站大学生创新产品设计作品
  • 备案期间关闭网站宝应人才网
  • 响应式网站一般做几个版本官网+wordpress
  • 太原网站建设方案服务佛山市建设工程有限公司
  • 智能网站建设平台php mysql 网站源码
  • 夏天做那些网站能致富百度关键词价格怎么查询
  • 厦门微信网站专业从事网站开发公司
  • 网站标题的写法湖南如何做网络营销
  • 设计做兼职的网站求推荐医院英文网站建设
  • 有没得办法可以查询一个网站有没得做竞价呀ai可以用来做网站吗
  • 俄乌局势最新消息惠州seo排名优化
  • 常州发布信息的有什么网站电商平台建设公司