Парни, как поставить таймоут на текущий url, а не на все.
Два кусочка кода.
async with session.get(url, headers=headers) as response:
date = response.headers.get("DATE")
async with aiohttp.ClientSession() as session:
for url in check_site:
task = asyncio.ensure_future(bound_fetch(sem, url, session))
tasks.append(task)
responses = asyncio.gather(*tasks)
await responses
Вот так, работает очень долго если много url, т.к. все сайты разные и отвечают с разным временем.
Если я ставлю timeout
async with session.get(url, timeout=30, headers=headers) as response:
то скрипт работает всего 30 секунд, а не на каждый адрес ставиться отдельный timeout.
То есть примеру даю на вход 1000 адресов, те что успели открыть за 30 секунд получаю ответ, а остальные, идут в исключение, т.к. не успел их проверить.
Точно такая же ситуация с read_timeout и conn_timeout.