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


@Flosckow

Код:

@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?


Решения вопроса 1

@Everything_is_bad

Изучи основы asyncio, после этого у тебя должно появиться понимание как работает event loop, как в нем работают асинхронные и синхронные вызовы, как синхронный вызов на него влияет и т.п, и т.д.

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

но не будет блокировать event loop

psycopg2

будет блокировать event loop


Ответы на вопрос 0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *