lifespan.py 567 B

123456789101112131415161718192021222324252627
  1. import asyncio
  2. from contextlib import asynccontextmanager
  3. from fastapi import FastAPI
  4. from loguru import logger
  5. from sorawm.server.db import init_db
  6. from sorawm.server.worker import worker
  7. @asynccontextmanager
  8. async def lifespan(app: FastAPI):
  9. logger.info("Starting up...")
  10. await init_db()
  11. logger.info("Database initialized")
  12. await worker.initialize()
  13. _ = asyncio.create_task(worker.run())
  14. logger.info("Application started successfully")
  15. yield
  16. logger.info("Shutting down...")
  17. logger.info("Application shutdown complete")