背景

第三方客户往往容易存在调用失败的问题,在关键链路上如何应对这种问题。尤其是大促期间可能的调用超时,该如何处理。

例如兑换礼品,调用后超时,如果只是简单的发起重试,容易造成业务的异常。

设计

要求

  • 遇到超时的正确处理

实现

  1. 识别超时异常
  2. 写入中间表
  3. 定时任务扫描中间表,进行二次确认(需要第三方提供查询接口,通过流水号)
  4. 如果之前为失败,那么发起重试,更新重试次数和下次重试时间
  5. 需要限制重试次数,例如超过三次标记为彻底失败,人工介入