Faraday: Net::HTTP 适配器自动重试请求

创建于 2018-02-21  ·  3评论  ·  资料来源: lostisland/faraday

基础信息

  • 法拉第版本:任何
  • 红宝石版本:2.5+

问题描述

当使用Net::HTTP作为适配器时,用户会对Net::HTTP提供的重试策略感到惊讶。 这带来了不同的“问题”(例如#612 和#771)。
对于 Ruby <= 2.4,我们无能为力,但是 Ruby 2.5 为Net::HTTP提供了一个新的max_retries配置,因此 Faraday 应该在可用时自动设置它。

重现步骤

请参阅问题 #612 和 #771。

feature help wanted

所有3条评论

我一直在研究这个问题。 #771 中提到的一种方法是将默认值设置为 0,但根据配置的重试次数进行更改。 我们必须让 Retry 中间件知道底层适配器(因为某些适配器可能不支持这一点),并有条件地在env应用此逻辑。 适配器还必须知道重试次数。

作为上述方法的替代方案,我们可以将其设置为不进行重试,而是将重试逻辑限制在 Retry 中间件中。 无论结果如何,我都非常乐意接受@iMacTia

我肯定在考虑第二种选择。
我们已经有了可以处理重试失败请求的 Retry 中间件。
适配器(在本例中为 Net::HTTP)不应自行重试请求。

在这种情况下,我们需要做的就是告诉 Net::HTTP 适配器将max_retries为 0,当然,如果此属性可用

@iMacTia - 我完全同意。 在这种情况下,我会选择这个。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

aleksb86 picture aleksb86  ·  3评论

mattmill30 picture mattmill30  ·  4评论

Lewiscowles1986 picture Lewiscowles1986  ·  4评论

luizkowalski picture luizkowalski  ·  3评论

ryanbyon picture ryanbyon  ·  3评论