[ruby-core:67206] [ruby-trunk - Feature #10674] [Open] Net::HTTP retries idempotent requests once after a timeout, but its not configurable

From: jeremy.lecour@...
Date: 2014-12-29 15:10:53 UTC
List: ruby-core #67206
Issue #10674 has been reported by J=C3=A9r=C3=A9my Lecour.

----------------------------------------
Feature #10674: Net::HTTP retries idempotent requests once after a timeout,=
 but its not configurable
https://bugs.ruby-lang.org/issues/10674

* Author: J=C3=A9r=C3=A9my Lecour
* Status: Open
* Priority: Normal
* Assignee: Eric Hodel
* Category:=20
* Target version:=20
----------------------------------------
Hi,

I've noticed that Net::HTTP retries idempotent requests once after a time-o=
ut. It seems to adhere to the RFC 2616 (http://tools.ietf.org/html/rfc2616)=
, but it is not always the best thing to do.

When you don't know exactly how a remote web service works, it may be wise =
to retry after a time-out.
But when you know that a retry won't change anything, it should be possible=
 to disable this automatic retry. Otherwise, the server will have to deal w=
ith 2 requests (instead of 1) and the client will effectively time-out twic=
e later than expected (time for the first and second time-out).

Having a basic "#retry=3D" (like we have "#read_timeout=3D" or "#open_timeo=
ut" would be good first step.
The value could be a simple boolean, or even an integer for the maximum num=
ber of retries.

The "Retry" middleware in Faraday has a more comprehensive feature set with=
 max retries, exponential back-off, =E2=80=A6 : https://github.com/lostisla=
nd/faraday/blob/master/lib/faraday/request/retry.rb



--=20
https://bugs.ruby-lang.org/

In This Thread

Prev Next