Сейчас вот такой код используется:
from aiohttp import ClientSession
async def post(semaphore: asyncio.Semaphore, session: ClientSession, url: str, data: str):
async with semaphore:
try:
async with session.post(url, data=data) as r:
response_data = await r.read()
class Response(object):
def __init__(self, status_code, text):
self.status_code = status_code
self.text = text
return Response(r.status, response_data.decode('utf-8'))
except Exception as e:
print(e)
return None
...................................
async with ClientSession() as session:
semaphore = asyncio.Semaphore(256)
coros = [post(semaphore, session, r[0], r[1]) for r in requests]
requests = await asyncio.gather(*coros)
Но он показывает плохие результаты. Как можно ускорить и правильно ли я вообще делаю? Мне надо отправлять http запросы на сервер, но не более, чем 256 одновременно.