Задать вопрос
@Tayrus0

Как снизить нагрузку на процессор при обращении к БД?

Есть бот, он запускает по 10 тасков (выполняется парсинг страниц) через asynаcio на 1 пользователя, в каждом 1 таске выполняется обращение к БД 4-5 раз, это очень сильно нагружает процессор и бот начинает тормозить, как можно снизить нагрузку на процессор ?

UPD На моем сервере много ядер, но почему то используются не все
6146f6a70d267404555913.jpeg

Соединение создаю с помощью asyncpg.create_pool()

Все обращения к БД делаю через
async with self.pool.acquire() as con:
            await con.execute(sql)
  • Вопрос задан
  • 197 просмотров
Подписаться 2 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
@FOUREX
Сделай таски на отдельном потоке используя библиотеку Threading
https://docs.python.org/3/library/threading.html
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Если нагрузка на базу начинает тормозить остальное - видимо (при условии, что база нормально настроена, задействован пул коннектов, запросы оптимизированы и т. д.) пришёл час разносить их по разным контейнерам/виртуалкам.
Ответ написан
Ваш ответ на вопрос

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

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