接收支付结果消息
- 付款是批量付款,一个付款对应多个付款详情,需要对多个供应商付款。
- 因为同时付款所以支付结果 mq 基本也是同时接收到。
- 业务诉求,当支付详情都收到支付结果后,支付单状态变为支付完成。
- 处理方案,以付款单 id为纬度进行加锁。
- 不加锁后果:有 A、B 两个支付 详情,线程1收到支付成功消息,更新 A 为支付成功,查询是否所有都已支付成功,这时 B 尚未支付成功,所以不更新付款单状态为支付完成;在 A 线程提交事务前,线程2收到 B 支付成功消息,更新 B 为支付成功,然后查询是否都已支付,因为此时 A 线程尚未提交,所以查询的是 A 线程还未支付,不更新付款单状态。最终造成付款单状态不能够变为支付完成。
推荐阅读
- 基于SSM的垃圾分类管理系统源码+论文第一稿+查重报告+安装视频+包安装配置
- ssh框架基于java的爱心捐助平台源码+论文第三稿+查重报告+代码讲解视频(包安装,已降重)
- SpringBoot网课管理系统的设计与实现源码
- 数据结构与算法|数据结构笔记——栈和队列
- python|超简单教你用Python克隆声音(以卷福为例)
- 接口自动化测试|Postman通用接口加密解决方案
- c++|飞桨框架v2.3发布高可复用算子库PHI!重构开发范式,降本增效
- 数据库|存储系统又慢又杂太难用(我们推荐这几本书帮你解决问题)
- 笔记|简历应该怎么写(HR看一篇简历仅需要5秒吗?简历模板大全分享)