@bd6b648f40b6ca0ecf347ee

Почему телеграм бот (aiogram) не работает во время команды?

Я написал асинхронного телеграм бота, с соблюдением async, await и т.д.
В нём у меня по команде выполняется поиск по команде с выводом результат.
Проблема в том, что при использовании этой команды бот встаёт для всех пользователей, пока не выполнит её. То есть буквально не работает даже команда /start.

Можно ли как-то решить данную проблему? Или мне нужно использовать что-то вместо ?
  • Вопрос задан
  • 416 просмотров
Пригласить эксперта
Ответы на вопрос 1
drygdryg
@drygdryg
Python-разработчик
Вы вызываете системную команду grep с помощью синхронной функции os.popen, из-за чего на время выполнения команды блокируется цикл событий asyncio, и ваш бот как бы зависает. Поэтому вам следует вызывать системные команды с помощью неблокирующей функции-корутины asyncio.create_subprocess_shell.
https://stackoverflow.com/questions/63782892/using...
Ответ написан
Ваш ответ на вопрос

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

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