Telegram webhook
У меня есть телеграм бот с настроенным вебхуком со следующим исходным кодом-
@asynccontextmanager
async def lifespan(_):
await bot.set_webhook(
url='webhook_url',
allowed_updates=dp.resolve_used_update_types(),
drop_pending_updates=True,
)
yield
await bot.delete_webhook()
app = FastAPI(lifespan=lifespan)
@app.post("/telegram-webhook")
async def webhook(request: Request) -> None:
print('request!')
await asyncio.sleep(5) // for testing puproses!!
update = Update.model_validate(await request.json(), context={"bot": bot})
await dp.feed_update(bot, update)
if __name__ == "__main__":
uvicorn.run(app, port=5000, log_level="info")
Обнаружил что обрабатывается только одно сообщение за раз. Что бы это проверить добавил искуственную задержку и сделал 2 запроса. Итог, второй запрос обрабатывается только после того как первый завершит работу. Тоесть бот может обслуживать только одного пользователя за раз:)
Так-же проверил, fastapi может принимать несколько запросов. Это телеграм-сервера ждут пока заверштся один запрос что бы начать второй.
В чем может быть проблема?