在Python Flask后端重试post请求机制

问题描述 投票:0回答:1

上下文:我有一个 API,在 API 内部调用了 3 个不同的外部 POST API。行为应该是,如果所有 3 个 API 都给出成功响应,那么只有整体 API 应该成功。即使 1 失败,我们也会在 POST 调用上进行回滚。现在的问题在于一个响应时间非常长的外部 API。 P98是5秒。

我们的服务在 Flask 中,外部 request.post 方法有 10 秒超时。

现在我们正在构建一个解决方案,我们必须在后端 API 本身中进行重试。所以我有2个解决方案,两者都消耗相同的服务器资源吗?

  1. 超时重试3次。 (3* 10 秒 = 30 秒)
  2. 根据请求将超时时间增加到 30 秒。调用后

以上两种方法是否消耗相同的服务器资源?

python flask design-patterns architecture system-design
1个回答
0
投票

超时和重试配置通常不应该在客户端(请求者)完成,因为客户端对其请求超时限制和重试策略有更多的控制权?

我认为增加超时的第二种方法(如果可能的话)应该更有效,因为它需要客户端和服务器之间的通信较少,但理想情况下,如果尝试失败,它应该尽快与客户端通信,让客户端决定是否它应该尝试另一次重试,所以我认为第一个解决方案可能更合适

© www.soinside.com 2019 - 2024. All rights reserved.