Aiohttp + aiogram
Мне нужно запустить aiohttp сервер, одновременно с aiogram. Если выкидываю в другой поток, то RuntimeError: set_wakeup_fd only works in main thread of the main interpreter
Ответы (2 шт):
Автор решения: politpedia
→ Ссылка
Посмотрите в сторону aiogram 3 версии (beta), а также на этот пример: aiogram 3 examples.
Примерно это будет выглядеть так:
from aiohttp.web_app import Application
from aiohttp.web import run_app
from aiogram.webhook.aiohttp_server import SimpleRequestHandler, setup_application
...
def main():
...
app = Application()
app["bot"] = bot
SimpleRequestHandler(
dispatcher=dp,
bot=bot,
).register(app, path="/webhook")
setup_application(app, dp, bot=bot)
run_app(app, host="0.0.0.0", port=8081)
Регистрация роутеров для обработчиков выглядит следующим образом: app.router.add_post("/some_url", some_func)