怎么保证调用三方接口后项目的数据一致性

通常在项目中会有业务需求需要调用第三方的接口或者合作平台,这时会有一个喜闻乐见的问题:在调用三方接口后,如果更新本地数据失败了,怎么办?

示例:本地项目需要推送订单的状态到第三方接口,并根据返回值更新本地订单状态为已推送,如果在第三方处处理成功并返回标识,但是在本地更新订单状态时出错了,就造成了本地数据和第三方数据不一致的情况。

解决:思路如下,可以先默认更改本地订单状态为已推送,然后调用三方接口,根据接口返回值进行回滚

1.创建事务

2.更新本地订单状态(失败则回滚)

3.调用第三方接口

4.根据接口返回值决定事务提交还是回滚

这样首先保证了本地数据能够更新,再根据接口返回值判断是否更新。

这种方法只是针对单一操作,如果是大量的批量操作,建议使用队列进行异步处理。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值