lib/async/http/client.rb in async-http-0.23.3 vs lib/async/http/client.rb in async-http-0.24.0
- old
+ new
@@ -61,10 +61,10 @@
def call(request)
request.authority ||= @authority
attempt = 0
- # There is a challenge with how this works. If you have 8 connections in the connection pool and they've all expired, retrying 3 times isn't going to work. We need to, perhaps, on the last retry, initiate a completely new connection.
+ # We may retry the request if it is possible to do so. https://tools.ietf.org/html/draft-nottingham-httpbis-retry-01 is a good guide for how retrying requests should work.
begin
attempt += 1
# As we cache connections, it's possible these connections go bad (e.g. closed by remote host). In this case, we need to try again. It's up to the caller to impose a timeout on this. If this is the last attempt, we force a new connection.
connection = @connections.acquire