@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)
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 3
@FOUREX
Сделай таски на отдельном потоке используя библиотеку Threading
https://docs.python.org/3/library/threading.html
Ответ написан
Комментировать
Bad-Coder
@Bad-Coder
Костыль мира.
from threading import Thread

first_request = Thread(target=request)
first_request.start()
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Если нагрузка на базу начинает тормозить остальное - видимо (при условии, что база нормально настроена, задействован пул коннектов, запросы оптимизированы и т. д.) пришёл час разносить их по разным контейнерам/виртуалкам.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
CoMagic.dev Москва
от 150 000 до 250 000 ₽
FUNCORP Москва
от 250 000 до 350 000 ₽
БАРС Груп Санкт-Петербург
от 60 000 до 200 000 ₽