🍃 Lifespan¶
Raito позволяет описать асинхронную логику запуска и остановки декоратором @rt.lifespan(router), прямо как в FastAPI.
Пример¶
from typing import AsyncGenerator
from aiogram import Bot, Router
from raito import rt, Raito
router = Router(name="lifespan")
@rt.lifespan(router)
async def lifespan_fn(raito: Raito, bot: Bot):
bot_info = await bot.get_me()
rt.log.info("🚀 Launching bot : [@%s] %s", bot_info.username, bot_info.full_name)
rt.debug("Registering commands...")
await raito.register_commands(bot)
yield
rt.log.info("👋 Bye!")
Как это работает¶
код до
yieldвыполняется при запускекод после
yieldвыполняется при остановкеlifespan’ы отслеживаются по
bot.idи на выходе выполняются в обратном порядке