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 может принимать несколько запросов. Это телеграм-сервера ждут пока заверштся один запрос что бы начать второй.

В чем может быть проблема?


Ответы (0 шт):