假如没有引入事务框架,应对机器挂掉的情况,或者超时请求(比如转账超时,不知道对方是转账成功还是失败,只能依赖后期对账修复。这时可以抛异常日志备份下),无法知道请求的状态。可以通过对账的方式修复
针对 红包提现 的场景
1、生成订单唯一id
-------->发送对账消息,带上订单id详细信息,最好带上机器来源等等,方便定位
2、写自身业务存储
3、调用第三方转账接口
4、调用业务其他接口,比如通知、同步消息给其他业务
为了保证能修复生成id后出现异常的提现订单。应该在生成订单后id就生成一个消息或者日志。后续取这个消息去对账。
我们的做法是发送一个消息到延迟消息队列。然后10分钟后接到消息。查看存储 以及第三方转账 状态,如果订单异常,
回滚修复状态。