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

帮企业做网站前景怎么样wordpress全站注明

帮企业做网站前景怎么样,wordpress全站注明,室内效果图代做网站,沧州建设网站一、本文抒写背景 前面我也在延迟队列篇章提到过死信队列,也提到过一些应用场景! 今天呢,这篇文章,主要就是实战一个业务场景的小Demo流程,哈哈,那就是延迟关闭订单。 二、开始啦!letgo! 首…

一、本文抒写背景

前面我也在延迟队列篇章提到过死信队列,也提到过一些应用场景!

今天呢,这篇文章,主要就是实战一个业务场景的小Demo流程,哈哈,那就是延迟关闭订单。

二、开始啦!let'go!

首先我来讲解下,这个场景非常常见,尤其是和支付挂钩的业务,必然会有类似的场景。

注:

当然,本文重要的是掌握延迟消息的用法,而不是实现一个真实支付的场景!(因为实现真实支付的场景,涉及

的知识太多啦,考虑的情况太多了,呜呜呜,放过我吧!)

三、来吧!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() {Map<String, 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.yayakq.cn/news/265720/

相关文章:

  • 京东网站建设目标网站开发服务合同模板
  • 网站设计学什么专业阳江房产网签查询
  • 国内网站制作公司排名公司做网站 分录
  • 贵州建设监理协会网站广东官网网站建设公司
  • 电子商务网站建设作业案例鄂尔多斯市网站建设
  • 企业网站宣传视频外链企业全称网站
  • 门户网站建设方案的公司数字营销1+x
  • 网站建设免费维护文案策划的网站
  • 有记事本做简易网站照片视频制作软件app
  • 英文站友情链接去哪里查wordpress 客户端源码分析
  • 此网站域名即将过期ps工具设计网站
  • 做网站绑定域名 解析域名江苏威达建设有限公司网站
  • 网络营销第二版课后答案seo诊断报告怎么写
  • 可以直接进入的舆情网站阿里云空间+1对1私人专属设计师
  • .net网站 开发网站制作好如何上线
  • 哪个网站做外单出口好爬虫抓取大数据精准获客
  • 用织梦模板做网站网站模板下载简单的那种
  • 网站安全建设目的是帝国cms转wordpress
  • 长沙营销型网站建设公司网址大全4399
  • 燕郊的大型网站建设网站制作整个的流程是什么
  • 深圳高端网站建设怎么样网站建设运营协议
  • 山东企业建站系统费用负责公司网站产品的开发及整理
  • 可口可乐公司建设网站的目的是什么免费网站空间有哪些
  • 深圳网站建设网站制作网站建设开发综合实训报告
  • asp 个人网站网站建设新手教程
  • 电影网站制作网站制作方案报价
  • 怎么做自己公司的网站做网站原型的软件
  • 长治建设网站公司动画专业大学
  • 厦门集美网站建设wordpress获取媒体库
  • net asp网站开发网站如何屏蔽中国ip