你的位置:首页 > 软件开发 > Java > spring事务与消息队列

spring事务与消息队列

发布时间:2016-10-12 12:00:30
在开发过程中,遇到一个bug,产生bug的原因是spring事务提交晚于消息队列的生产消息,导致消息队列消费消息时获取到的数据不正确。这篇文章介绍问题的产生和一步步的解决过程。一.问题的产生:场景还原:接口中的一个方法,首先修改订单状态,然后向消息队列中生产消息,消息队列的消费者 ...

在开发过程中,遇到一个bug,产生bug的原因是spring事务提交晚于消息队列的生产消息,导致消息队列消费消息时获取到的数据不正确。这篇文章介绍问题的产生和一步步的解决过程。

一.问题的产生:

场景还原:接口中的一个方法,首先修改订单状态,然后向消息队列中生产消息,消息队列的消费者获取到消息检测订单状态,发现订单状态未更改。

代码:

@Service(orderApi)public class OrderApiImpl implements OrderApi {	@Resource MqService mqService;	@OrderDao orderDao;		public void push(String orderId) {		// 更新订单状态,之前的状态是1		updateStatus(orderId, 3);		// 产生消息		mqService.produce(orderId);	}	public viod updateStatus(String orderId, Integer status) {		orderDao.updateStatus(orderId, status);	}}

原标题:spring事务与消息队列

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录