Убрать синхронные вызовы в асинхронном коде

70 000 руб. за проект
17 октября 2023, 21:55 • 18 откликов • 106 просмотров
Есть бот парсер, в телеграмм, построен он на aiogram, если запускать его для одного пользователя все +- хорошо, но вот если для 30+ пользователей бот начинает тормозить, долго реагировать на кнопки, так же Парсинг начинает долго выполняться, могу сделать предположение, что где-то есть cpu bound задачи (для запросов используются асинхронные библиотеки вроде aiohttp, для базы пул asyncpg которые тормозят цикл, могу ошибаться, нужно выяснить причину лагов и исправить, если дело в cpu bound, нужно вынести или в celery или что то подобное, на ваш выбор, желательно чтобы пул коннектов к базе не создавался для каждого процесса, если вы захотите использовать celery, работа будет считаться выполненной если бот под нагрузкой 100+ человек не будет тормозить и процесс Парсинга не будет тормозить так же, то есть скорость Парсинга будет одинаковой для всех, дело думаю в коде, а не в ресурсах системы или базе, нужен человек, который понимает как устроены циклы, потоки, процессы, gil, очереди, оставляйте свой телеграмм для связи
P.s все крутится под докером