Когда я нажимаю start_loop, в окне сообщения tg на моей странице начинает отображаться обратный отсчет. Когда я нажимаю стоп, как я могу остановить предыдущий обратный отсчет?
Я использую идентификатор (запрос), чтобы подтвердить, что экземпляр запроса, отправленный дважды, не совпадает. После того, как я выполню функцию stop_loop, start_loop все равно будет выполняться и изменять содержимое сообщения.
Может кто-нибудь сказать мне, как это остановить?
Ответ №1:
Я использовал redis для его решения, но я не знаю, является ли это наиболее подходящим способом. Если есть более подходящий способ, пожалуйста, дайте мне знать
Ответ №2:
Чтобы управлять своим циклом, вы должны вывести его за пределы обработчиков и просто войти из любого хранилища (например, используется dict).
Базовый пример цикла
Источник: programbox.ru
как сделать своего aiogram бота #программирование #aiogram #python #telegrambot
Как останавить telegram бота (aiogram) при любой ошибке?
Telegram бот написан на python при помощи библиотеки aiogram. Есть необходимость останавливать самого бота и закрывать программу при возникновении ошибок, которые касаются непосредственно библиотеки aiogram. В качестве примера ошибки можно рассмотреть ( или любую другую которая возникает внутри библиотеки aiogram):
aiogram.utils.exceptions.TerminatedByOtherGetUpdates: Terminated by other getupdates request; make sure that only one bot instance is running Если вкратце вот код:
from aiogram import Bot, types from aiogram.dispatcher import Dispatcher from aiogram.utils import executor from config import TOKEN if __name__ == ‘__main__’: bot = Bot(token=TOKEN) dp = Dispatcher(bot) executor.start_polling(dp)
Пробовал оборачивать executor.start_polling(dp) в конструкцию try, except . Однако это не помогло ибо ошибка возникала внутри executor.start_polling(dp) и тем самым не имела никакого влияния на try, except главной функции. Что необходимо сделать для остановки бота в случаем ошибки и закрытием самой программы?
Источник: ru.stackoverflow.com
Привет Вопрос: как правильно остановить бота? по нажатию Ctrl+C или в
случае когда я собираюсь остановить докер контейнер, и посылается соответствующий сигнал? Я логику понимаю че использовать, но может у кого то есть пример graceful shutdown? плюс как корретнее остановить asyncio.run(main())
06:50 26.04.2022
3 ответов
А проблема-то в чём? Что тебя заставило задуматься над этим вопросом?
Как ИДЕАЛЬНО писать БОТОВ на PYTHON | Aiogram & Nextcord
06:51 26.04.2022
Groosha
А проблема-то в чём? Что тебя заставило задуматься.
Стало жалко бота через sigkill мочить, это ж его детище))
06:52 26.04.2022
Artem Автор вопроса
Groosha
А проблема-то в чём? Что тебя заставило задуматься.
1. Не нравится сообщение об ошибке из кишок aiogram (от aiohtttp) 2. Хотел бы корректно утилизировать коннект к редису (aioredis хотел из реализовали _ _ del _ _ тем не менее я хочу вызывать это сам) + какие то ещё действия выполнить после остановки бота
Источник: telq.org