_DEFAULTS = dict(
connect_timeout=20.0,
request_timeout=20.0,
- async_timeout=20.0,
follow_redirects=True,
max_redirects=5,
use_gzip=True,
def __init__(self, url, method="GET", headers=None, body=None,
auth_username=None, auth_password=None, auth_mode=None,
connect_timeout=None, request_timeout=None,
- async_timeout=None,
if_modified_since=None, follow_redirects=None,
max_redirects=None, user_agent=None, use_gzip=None,
network_interface=None, streaming_callback=None,
self.auth_mode = auth_mode
self.connect_timeout = connect_timeout
self.request_timeout = request_timeout
- self.async_timeout = async_timeout
self.follow_redirects = follow_redirects
self.max_redirects = max_redirects
self.user_agent = user_agent
self.queue.append((key, request, callback))
if not len(self.active) < self.max_clients:
timeout_handle = self.io_loop.add_timeout(
- request.start_time + request.async_timeout,
+ request.start_time + min(request.connect_timeout, request.request_timeout),
functools.partial(self._on_timeout, key))
self.waiting[key] = (request, callback, timeout_handle)
self._process_queue()
def test_heavyload_timeout(self):
with closing(self.create_client(max_clients=1)) as client:
client.fetch(self.get_url('/trigger?wake=false'), self.stop, request_timeout=10)
- client.fetch(self.get_url('/hello'), self.stop, async_timeout=3)
+ client.fetch(self.get_url('/hello'), self.stop, connect_timeout=3)
response = self.wait()
self.assertEqual(response.code, 599)