如何使用第三方API处理互联网丢失和超时错误

时间:2018-02-16 10:07:40

标签: c# api design-patterns

这是情况。它似乎是由不可靠的互联网连接引起的,但它也可能是第三方有错误的数据库锁定,然后需要很长时间才能响应。

  1. 我们将第三方API称为例如从优惠券号码下订单。
  2. 发生超时或互联网超时错误。
  3. 电话实际上已通过,但我们从未收到成功回应。
  4. 操作员不使用我们的重试功能,但关闭屏幕并放弃该过程。根据第三方的说法,我们成功下了订单,但由于意外故障,我们没有本地记录。
  5. 稍后操作员再次打开屏幕并重复该过程,但现在他们收到错误,说明订单/凭证已经完成。
  6. 我们一直在考虑如何处理这个问题,但他们都没有完全解决问题。例如,"重试"选项有帮助,但如果操作员关闭屏幕,那么它再次超出我们的控制范围。

    另外需要注意的是,第三方的大多数错误都是合法错误,我们应该不再继续订购。这种超时情况是一种特殊情况,它正在成为支持的噩梦。

1 个答案:

答案 0 :(得分:1)

您可以在启动对其他api的第一次调用之前创建某种记录。

此记录(称为“待处理”)可能会将请求标记为已启动但尚未完成。收到成功响应后,记录成功完成,当操作员关闭屏幕时,请求将保持在您的“待处理”状态,您可以显示“重试/检查状态”按钮,单击此按钮发出请求再次,如果已完成响应,它只是向用户显示“成功”消息,如果通常重试,则第一次发出请求没有区别。