Задать вопрос
@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?
  • Вопрос задан
  • 166 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@Everything_is_bad
Изучи основы asyncio, после этого у тебя должно появиться понимание как работает event loop, как в нем работают асинхронные и синхронные вызовы, как синхронный вызов на него влияет и т.п, и т.д.

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

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

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽