使用不稳定“API”的 Python 技巧

avl*_*oss 3 python api concurrency python-requests

我的应用程序正在使用第三方API. 它API定期在多个端点进行轮询。APIIn 还根据用户与应用程序的交互进行一些额外的调用。速度API非常慢,大多数请求需要一秒多一点的时间。这API是非常不稳定的 - 超时很常见,500错误很常见,会话密钥经常随机过期(即使定期调用定义的“keep_alive”端点)。没有选择使用另一个API.

处理这种情况的最佳做法是什么API

如何API在该requests级别禁用对此的并发请求。那么,如果一个请求正在等待响应,那么第二个请求不会启动吗?这应该在“每个域”的基础上完成,对其他域的其他请求仍然应该同时完成。

还有其他可以切换的设置,requests以便更轻松地处理此类问题API吗?

dm0*_*514 5

处理此类 API 的最佳实践是什么?

在 SRE 中,我们几乎总是假设 API 永远不可信,因此有许多模式可能会有所帮助:

  • 熔断
  • 缓存
  • 超时
  • 重试/退避

参考: