spring事务调用未提交 另一方法查询问题

最近项目中遇到一个问题。就是我们的业务订单申请退款的场景。由于申请退款需要先更新订单的状态为退款中;然后发起了第三方支付平台的退款请求,第三方回调回来的时候,前一步的更新订单为退款中未完成事务。导致了退款回调处理失败。

先发下之前的存在问题的调用关系图:

spring事务调用未提交 另一方法查询问题_第1张图片

修改后的关系图:
 

spring事务调用未提交 另一方法查询问题_第2张图片

产生上面的问题原因,我们经过分析后,是在订单服务的订单更新方法添加了spring事务注解@Transactional;在这个方法内先更新订单,然后发起第三方调用;最后方法结束,事务完成。

基于上面的分析,我们定的修改方法是提供一个新的方法不含事务,在这个新的方法内部依次调用 更新订单的方法 和 发起第三方的调用。

----------------

欢迎各位留言交流,如有不正确的地方,请予以指正。【Q:981233589】

 

 

你可能感兴趣的:(分布式,源码研究,框架)