Я только начал разбираться с gunicorn, так что прошу не судить за неграмотность.
Мне понадобилось запустить aiogram бота через webhook. Без gunicorn он нормально работал (через ngnix), но я прочитал что gunicorn нужен и решил пробовать с ним.
Проблема состоит в том, что gunicorn (как я понимаю) принимает в качестве аргументов программу и функцию из этой программы, которая возвращает веб-приложение (в моем случае aiohttp). Aiogram же, при выполнении функции start_webhook() не возвращает приложение, а сразу запускает его.
Если изменить start_webhook() функцию так, чтобы она возвращала приложение aiohttp, а не запускала его, и запустить через gunicorn: gunicorn main:get_web_app --bind localhost:8001 --worker-class aiohttp.GunicornWebWorker
происходит ошибка: RuntimeError: This event loop is already running in python
Каким образом можно запустить бота через gunicorn? Возможно для телеграм бота он не нужен?
У меня прямо сейчас другая проблема, взял вариант описанный в примерах aiogram-а по установке вебхука, подставил свои данные, настроил проксирование через nginx, все работает, но бот не присылает ни какого ответного сообщения
Всё так, aiogram при вызове set_webhook не ожидает, что loop уже будет запущен. Поэтому я тупо выдрал соответствующие куски кода из aiogram.utils.executor: