@Flosckow

Каким образом работает asyncpg?

@app.get("/cities/biggest", response_model=list[CitySchema])
async def get_biggest_cities(session: AsyncSession = Depends(get_session)):
    cities = await service.get_biggest_cities(session)
    return [CitySchema(name=c.name, population=c.population) for c in cities]

Есть вот такой код, как при запросе к бд с использованием asyncpg он будет работать, будет ли тут ожидание ответа? Поясню, мы ведь в итоге на ручке всё равно будем ждать результата от сервиса, так как в дальнейшем надо их использовать. Не совсем понимаю этот момент. Какого его отличие от например psycopg2, будет ли выигрыш от использования asyncpg?
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
@Everything_is_bad
Изучи основы asyncio, после этого у тебя должно появиться понимание как работает event loop, как в нем работают асинхронные и синхронные вызовы, как синхронный вызов на него влияет и т.п, и т.д.

Поясню, мы ведь в итоге на ручке всё равно будем ждать результата от сервиса
но не будет блокировать event loop

psycopg2
будет блокировать event loop
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы