Дополнительно
Пакет Python - aiohttp имеет предупреждающее сообщение "Незакрытая клиентская сессия"
Мой код выглядит следующим образом:
import asyncio
import aiohttp
urls = [
'http://www.163.com/',
'http://www.sina.com.cn/',
'https://www.hupu.com/',
'http://www.csdn.net/'
]
async def get_url_data(u):
"""
read url data
:param u:
:return:
"""
print('running ', u)
resp = await aiohttp.ClientSession().get(url=u)
headers = resp.headers
print(u, headers)
return headers
async def request_url(u):
"""
main func
:param u:
:return:
"""
res = await get_url_data(u)
return res
loop = asyncio.get_event_loop()
task_lists = asyncio.wait([request_url(u) for u in urls])
loop.run_until_complete(task_lists)
loop.close()
Когда я запускаю свой код, он выдает предупреждение: Незакрытая клиентская сессия
Кто-нибудь может подсказать мне решение этой проблемы?
Большое спасибо
4
2
В конце концов, вы должны закрыть соединение. У вас есть 2 варианта:
Вы можете закрыть соединение вручную:
Или вы можете использовать его с менеджером контексных соединений:
Вы должны использовать
ClientSession
, используя асинхронный менеджер контекста для правильной блокировки/освобождения ресурсов: