Как запустить два бота одновременно в одном проекте? Python+aiogram

Рейтинг: 1Ответов: 1Опубликовано: 20.06.2023

У меня есть main.py:

from aiogram import Bot, executor

from dotenv import load_dotenv

import os

from utils.connect_db import con
from utils.db_functions import create_table
from loader import dp, dp2

# load_dotenv()
# bot = Bot(os.getenv('TOKEN'))
# bot2 = Bot(os.getenv('TOKEN2'))


async def on_startup(dispatcher):
    await create_table()


async def on_shutdown(dispatcher):
    con.close()

if __name__ == '__main__':
    from handlers.admins import admin_panel
    from handlers.admins import admin_panel2
    from handlers.users import user_panel
    executor.start_polling(dp, on_startup=on_startup, on_shutdown=on_shutdown)
    executor.start_polling(dp2, on_startup=on_startup, on_shutdown=on_shutdown)
    print("Bot stopped")

когда я запускаю бота срабатывает первый executor, а я хочу, чтобы еще заработал второй executor, что нужно сделать, чтобы срабатывало два executor'а вместе, подскажите пожалуйста

Ответы

▲ 0Принят

Просто создай два Dispatcher'a, зарегистрируй два router'а для каждого диспатчера и вызови их асинхронно через

await asyncio.gather(dp1.start_polling(user.bot),dp2.start_polling(admin.bot))