from datetime import datetime
import asyncio
from aiohttp import ClientSession
from aiochclient import ChClient
async def some_query(client, sql):
print(f"Start {i} - {datetime.now()}")
all_rows = await client.fetch(sql, json=True)
print(f"End {i}")
return all_rows
async def compete():
tasks = []
async with ClientSession() as session:
my_client = ChClient(session, url=f'http://{USER}:{PWD}@{HOST}:{PORT}/',
database=DB)
for i in range(1, 3):
task = asyncio.create_task(self.some_query(my_client, i, "SELECT * FROM table"))
tasks.append(task)
await asyncio.gather(*tasks)
asyncio.run(compete())
Код работает, но когда запрос поступает в базу данных, он выполняется там синхронно.
Например, 3 запроса выполняются за 180 секунд, и нет никакой разницы, происходит ли это синхронно или асинхронно. Правильно ли я понимаю, что если я запускаю код асинхронно, то 3 запроса должны быть выполнены примерно за 60 секунд?