169 похожих чатов

Вопрос о том, как корректно делать несколько конкурентных запросов к

бд из 1 хендлера. aiohttp+asyncpg. Может даже есть хорошие примеры?

8 ответов

50 просмотров

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

Sergey- Автор вопроса
Айван
Если из одного хэндлера, то создавая на каждый зап...

https://pym.dev/p/2fvpu/ скопировал сгенерированный тест. Я создаю пачку коннекторов, список фьючеров и жду и в gather. Но по сравнению с 1 запросом этот отрабатывает ровно в 10 раз дольше. Подозреваю что-то делаю не так и они последовательно выполняются

Айван
Если из одного хэндлера, то создавая на каждый зап...

Плохой совет. Коннекшены можно переиспользовать, между запросами, не обязательно их открывать на каждый запрос новый. Это довольно ресурсоемкое занятие.

Gleb Fault
Плохой совет. Коннекшены можно переиспользовать, м...

Может неверно переношу опыт с SQLAlchemy, но там сессии аналогичным способом нельзя использовать. Странно. С тем что ресурсоемкое согласен и я бы предпочел либо делать вызовы синхронно, либо использовать очередь

Айван
Может неверно переношу опыт с SQLAlchemy, но там с...

Там сессия - это не коннекшен, а состояния orm, которое действительно надо сбрасывать на каждый запрос. При этом сессия использует коннекшены из пула и не открывает их каждый раз на новый запрос/сессию в общем случае.

Айван
Может неверно переношу опыт с SQLAlchemy, но там с...

Очередь тоже не надо. Сейчас люди начитаются и пойдут строить грабли. У каждого нормального драйвера есть пул, вот вам и очередь. Если этого мало или не достаточно для контроля соединений, то ходите в БД через какой-нибудь pgbouncer. Особенно актуально в микросеврисах.

Gleb Fault
Очередь тоже не надо. Сейчас люди начитаются и пой...

А можно поподробнее про pgbouncer или статью какую-то хорошую?

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта