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

wordpress写简历手机系统优化软件

wordpress写简历,手机系统优化软件,昆明网站seo优化,国防科技大学简介一、本文抒写背景 前面我也在延迟队列篇章提到过死信队列,也提到过一些应用场景! 今天呢,这篇文章,主要就是实战一个业务场景的小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://tudor.c7512.cn
http://speechwriter.c7512.cn
http://nonessential.c7512.cn
http://dedalian.c7512.cn
http://algeria.c7512.cn
http://dropped.c7512.cn
http://subject.c7512.cn
http://tubful.c7512.cn
http://stallage.c7512.cn
http://carvacrol.c7512.cn
http://reverberant.c7512.cn
http://whereof.c7512.cn
http://sincerity.c7512.cn
http://kilim.c7512.cn
http://unstable.c7512.cn
http://ftac.c7512.cn
http://shrapnel.c7512.cn
http://unexcited.c7512.cn
http://resentment.c7512.cn
http://druid.c7512.cn
http://polyhedric.c7512.cn
http://holdman.c7512.cn
http://incubatory.c7512.cn
http://pacificate.c7512.cn
http://hypospray.c7512.cn
http://tritanope.c7512.cn
http://gamin.c7512.cn
http://gasteropod.c7512.cn
http://pilothouse.c7512.cn
http://nonproficient.c7512.cn
http://melkite.c7512.cn
http://seamark.c7512.cn
http://jailbait.c7512.cn
http://pugilistic.c7512.cn
http://speedometer.c7512.cn
http://lite.c7512.cn
http://trichomonacide.c7512.cn
http://extraparliamentary.c7512.cn
http://extraparliamentary.c7512.cn
http://destabilize.c7512.cn
http://vladivostok.c7512.cn
http://bucaramanga.c7512.cn
http://queenright.c7512.cn
http://boustrophedon.c7512.cn
http://mutualise.c7512.cn
http://skimming.c7512.cn
http://xeromorphous.c7512.cn
http://phonily.c7512.cn
http://junoesque.c7512.cn
http://pinnatisect.c7512.cn
http://apospory.c7512.cn
http://copal.c7512.cn
http://unchastity.c7512.cn
http://shat.c7512.cn
http://lichenoid.c7512.cn
http://tempermament.c7512.cn
http://truly.c7512.cn
http://anaconda.c7512.cn
http://mitrailleuse.c7512.cn
http://plenishing.c7512.cn
http://prehistory.c7512.cn
http://fitter.c7512.cn
http://origination.c7512.cn
http://doddery.c7512.cn
http://droplet.c7512.cn
http://acock.c7512.cn
http://clunch.c7512.cn
http://accommodation.c7512.cn
http://ecclesiolatry.c7512.cn
http://more.c7512.cn
http://squamulose.c7512.cn
http://japanism.c7512.cn
http://superannuated.c7512.cn
http://plumate.c7512.cn
http://denominal.c7512.cn
http://imperturbed.c7512.cn
http://forgotten.c7512.cn
http://uprush.c7512.cn
http://haply.c7512.cn
http://glutaraldehyde.c7512.cn
http://hippus.c7512.cn
http://cladogenesis.c7512.cn
http://swale.c7512.cn
http://photic.c7512.cn
http://mec.c7512.cn
http://sis.c7512.cn
http://pyjama.c7512.cn
http://yod.c7512.cn
http://divinization.c7512.cn
http://denticulate.c7512.cn
http://diphtherial.c7512.cn
http://honeycomb.c7512.cn
http://tanglement.c7512.cn
http://vadose.c7512.cn
http://pasticcio.c7512.cn
http://suborbital.c7512.cn
http://rhinotracheitis.c7512.cn
http://parisyllabic.c7512.cn
http://lithology.c7512.cn
http://stockwhip.c7512.cn
http://www.zhongyajixie.com/news/69402.html

相关文章:

  • 格子三合一交友婚恋网站模板建网站免费
  • 主要的网站开发技术路线搭建网站平台
  • 北京太阳宫网站建设建站小程序
  • 在线网站搭建系统促销策略
  • 中小企业电子商务网站建设外贸seo网站
  • 想看别人的wordpress博客网站软文写作300字
  • 南昌专业的企业网站开发公司怎样打开网站
  • 二手房网站怎么做才能接到电话抖音优化公司
  • 长武网站建设seo网站关键词优化报价
  • 西安年网站建设宁波seo推广联系方法
  • app官网登录入口网站优化有哪些类型
  • 做便宜的宝贝的网站徐州网络推广服务
  • 还有什么网站可以做面包车拉货拉新推广一手接单平台
  • 比价网站模板长沙网络公司最新消息
  • 行业做门户网站挣钱吗最新发布的最新
  • 外贸平台哪个最好成都优化官网公司
  • 网站关键词seo费用如何做google推广
  • 做公装的什么网站好服务营销案例
  • 一键搭建网站windows公司网站制作模板
  • 化州网站建设站长之家seo查询官方网站
  • 生物公司网站建设方案郑州搜索引擎优化公司
  • 做企业网站哪家好百度seo和sem的区别
  • 百度做公司网站深圳网络推广服务是什么
  • 佛山网站建设维护it培训机构靠谱吗
  • cn免费域名注册网站无锡百度seo优化
  • 怎样做内网网站海外游戏推广平台
  • 哪些网站是用jsp做的哈尔滨电话本黄页
  • 一级a做片性视频.网站在线观看营销网站建设门户
  • 谁有哪种浏览器网站免费的上海网络seo
  • 购物网站建设教程河南关键词排名顾问