发送确认订单失败消息演示|学习笔记

简介: 快速学习发送确认订单失败消息

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)发送确认订单失败消息】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12425


发送确认订单失败消息


内容介绍:

一、讲解

二、小结


一、讲解

代码要保证扣减库存、扣减优惠券以及使用余额、确认订单的执行原则性。

如果一旦出现异常,会对异常进行 catch 处理。在 catch 当中,要去发送订单 id 、优惠券的 id、用户的 id 、余额。根据用户 id 查用户对象,才能去回顾余额。

还有要去回对的商品信息,商品的 id 以及商品的数量,这些信息都是需要以消息的方式给它发送到 MQ。

这些信息通常可以再去创建消息的 MQEntity 类。接着去封装分析的信息,设置到属性,将来直接去处理对象。

输入Long orderID

Long couponID

Long userID

Long userMoney

Long goodsID  

Long Integer goodsNum

这些属性和之前在原始的 pogu 类当中保持一致

提供进行消息发送的实体类后,把方法生成出来。生成后,可以在 case 当中,

MQEntity mqEntity=new MQEntity();

然后去设置这些数据

image.png

修改上述代码类型为BigDecimal,然后进行封装。

还有商品的id :mqEntity.setGoodsID(order.setGoodsID ())

商品数量:mqEntity.setGoodsNum(order.setGoodsNumber ())

优惠券:mqEntity.setCouponID(order.getCouponsID())

把要去进行回退的信息都封装 MQEntity,去发送消息即可。

可以去封装私有的方法,叫做新的 sendcancelorder 。首先你要去设置 topic 然后再来 tag。还有 keys, 然后消息的内容。消息的内容可以将 MQnz 转换成字符串发送过去。

image.png

tag 可以配置到的配置文件里面去,主题的名字不要进行硬编码,把它放置到涉及到的 properties 配置文件里边,将来读取就行。

那现在数据想在 Java 代码当中使用,首先要把它注入。

输入String topic

private String tag 

直接读取配置文件。

直接复制放入 topic 和 tag 配置文件。

第三个是业务标识 key,订单作为当前的业务标识 keys。

key 是 Long 类型,为传输方便,换成字符串。

然后将发送消息的方法实现出来。

输入*方法是用来去发送的订单确认失败消息。

去创建 message 的对象,注意是 lock  MQ 的 message。然后把参数设置进去。

有消息的对象后,就可以去发送。首先去注入注意模板类 RocketMQTemplate 。注入进来之后,使用它就可以去发送。

image.png

去传送 message 的时候,发现有异常。message 报错,是因为拿到 pro  doer ,然后再去发送,就没有问题。然后有异常把异常去处理,

或者是处理异常往上抛也可以。抛出去后进行相关处理,catch 的块放大。

整个消息发送过去之后,catch 当中进行 return 消息发送的结果 message 。


二、小结

整个代码结构是发生异常之后,创建消息的 pogo 类的对象,封装消息的内容。然后去发送订单确认失败的消息。然后封装发送消息的代码。topic 、tag,keys 等等传递过来。发放完之后,做详细日程。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4月前
自动发消息程序
【7月更文挑战第7天】
34 4
支付系统34----支付成功异步通知,处理重复通知,我们在我们程序当中找到处理订单的processOrder方法,我们要在更新订单状态和记录日志之前,先处理重复通知
支付系统34----支付成功异步通知,处理重复通知,我们在我们程序当中找到处理订单的processOrder方法,我们要在更新订单状态和记录日志之前,先处理重复通知
|
6月前
|
Windows
微信消息实现自动推送--方式一 成功啦 进来学
微信消息实现自动推送--方式一 成功啦 进来学
626 1
|
6月前
|
iOS开发
个推发送消息各字段在系统状态栏显示的信息,点击消息图标激活应用传递的信息,应用在线收到的透传消息信息
个推发送消息各字段在系统状态栏显示的信息,点击消息图标激活应用传递的信息,应用在线收到的透传消息信息
57 0
|
6月前
|
JSON 监控 供应链
如果请求的商品不存在,如何处理?
在电商领域,了解商品详情对于消费者和商家来说都至关重要。消费者需要了解商品的具体信息以做出购买决策,而商家需要掌握商品详情来优化库存管理和营销策略。京东开放平台提供的商品详情 API 允许我们批量获取多个商品的详细信息。通过该 API,我们可以一次性查询多个商品,提高获取信息的效率,更好地满足业务需求。
|
消息中间件 RocketMQ 开发者
发送确认订单失败消息演示|学习笔记
快速学习发送确认订单失败消息演示
发送确认订单失败消息演示|学习笔记
|
消息中间件 负载均衡 Java
下单消息的发送和接收案例|学习笔记
快速学习下单消息的发送和接收案例
211 0
下单消息的发送和接收案例|学习笔记
|
消息中间件 存储 算法
多类型业务消息专题-定时消息| 学习笔记
快速学习多类型业务消息专题-定时消息
169 0
多类型业务消息专题-定时消息| 学习笔记
|
消息中间件 运维 监控
多类型业务消息专题-普通消息 | 学习笔记(一)
快速学习多类型业务消息专题-普通消息
164 0
 多类型业务消息专题-普通消息 | 学习笔记(一)
|
NoSQL Redis 开发者
数据类型-案例:微信接收消息顺序控制| 学习笔记
快速学习数据类型-案例:微信接收消息顺序控制
数据类型-案例:微信接收消息顺序控制| 学习笔记