外部系统对接下单幂等性校验逻辑及接口超时处理
feign.RetryableException: Read timed out executing POST
接上篇:外部系统对接下单幂等性校验逻辑及事务提交锁表的处理
https://cloud.tencent.com/developer/article/2455687
整体思路:逻辑的完整性,而不是随意的逻辑开洞。
1.增加feign接口的超时时间,9秒
2.针对返回的错误码,查询该订单号信息返回给外部系统,代表订单下单成功
3.针对返回的错误码,先将该笔订单做取消操作,然后让下一次外部的请求可以下单成功
4.A系统(feign服务调用方,更新外部订单号关联中间表) --> B系统(服务提供方),如果接口超时,则外部订单号关联中间表无法更新关联,可以考虑将方案调整为:B系统(服务提供方,更新外部订单号关联中间表)
这样就可以回到原来正常的业务逻辑上:
1.外部订单号关联中间表是否已经存在订单号,没有,则新下单
2.存在订单号
代码语言:txt复制2.1 接口请求签名一致,则直接返回当前的订单号给外部系统。
代码语言:txt复制2.2 接口请求签名不一致,则将当前的订单号先取消,然后再重新下单,返回给外部系统。