Issue #16673 has been updated by prajjwal (Prajjwal Singh).


`+1`. This is something I'd love to see implemented because this is actually the most common use case for me.

Could be implemented in a backwards compatible way (set `open_timeout` and `read_timeout` to `total_timeout` and abort appropriately).

----------------------------------------
Feature #16673: total_timeout for Net::HTTP
https://bugs.ruby-lang.org/issues/16673#change-84519

* Author: mohamedhafez (Mohamed Hafez)
* Status: Open
* Priority: Normal
----------------------------------------
`Net::HTTP` allows setting `open_timeout` and `read_timeout`, but sometimes I just want to make sure an API call will finish within a set amount of time, and am not concerned with how long opening the connection takes and reading the connection takes individually, as long as the total is beneath a certain amount. Yes, one could set `open_timeout` + `read_timeout` to be equal to the maximum time they are willing to wait, but then for example if opening the socket happens almost immediately, I may get a read timeout when I am still willing to wait a bit longer (this is the case for the service I run, where we hit an external API that occasionally takes 60s to respond, and am trying to catch some of those longer running requests. it also occasionally takes over 5 seconds to open a connection, so I can't make open_timeout minimal either). In other languages, setting a total timeout is possible, like for example Java's `HttpRequest`.

My intern @LevonAr is willing to work on this, and put in a `total_timeout` option in a way that doesn't interfere with the current functioning of open_timeout and read_timeout. Would a patch to put in this feature be accepted?



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>