Форум сайта python.su
Ребят вопросик есть, не пинайте только я только учусь, пытаюсь запустить двух ботов в одном коде, один на aiogram обычный бот, второй на pyrogram юзер бот, с запуском проблем вроде нет через asyncio.gather. А вот с закрытием есть проблема, по ctrl+c пирограмовский закрывается, а вот aiogram не хочет прекращать работу. Сделал костыль через sys.exit и то он заработал когда я его в хэндлеры запихал, из main файла не хотел работать, работает оп команде aiogram боту, не нравиться. Кто может помочь?
Офлайн
Для примера
import asyncio from aiogram import Bot, Dispatcher, types from aiogram.utils import executor API_TOKEN = 'your_api_token' bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) @dp.message_handler(commands=['start']) async def start(message: types.Message): await message.reply("Hello! I'm a bot!") @dp.message_handler(commands=['stop']) async def stop(message: types.Message): await message.reply("Stopping the bot...") await dp.bot.close() # Close the bot async def shutdown(dispatcher: Dispatcher): await dispatcher.bot.close() await dispatcher.storage.close() await dispatcher.storage.wait_closed() if __name__ == '__main__': loop = asyncio.get_event_loop() try: loop.create_task(executor.start_polling(dp, skip_updates=True)) loop.run_forever() except KeyboardInterrupt: loop.run_until_complete(shutdown(dp)) print("Bot stopped gracefully.")
Офлайн