28 lines
727 B
Python
28 lines
727 B
Python
import asyncio
|
|
from contextlib import asynccontextmanager
|
|
from fastapi import FastAPI
|
|
from app import api_router
|
|
from utils.scripts import pools_creator, pools_destroy, db_startup, cursors_closer
|
|
from dbs import mysql
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
await pools_creator()
|
|
mysql.cached_cursors_cleaner_task = asyncio.create_task(mysql.cached_cursors_cleaner())
|
|
|
|
yield
|
|
|
|
mysql.cached_cursors_cleaner_task.cancel()
|
|
try:
|
|
await mysql.cached_cursors_cleaner_task
|
|
except asyncio.CancelledError:
|
|
print('Closed cached_cursors_cleaner_task')
|
|
await cursors_closer()
|
|
await pools_destroy()
|
|
|
|
|
|
app = FastAPI(lifespan=lifespan)
|
|
|
|
app.include_router(router=api_router)
|