diff --git a/app/db_engine.py b/app/db_engine.py index 0e6790c..3b6645e 100644 --- a/app/db_engine.py +++ b/app/db_engine.py @@ -30,8 +30,8 @@ if DATABASE_TYPE.lower() == "postgresql": port=int(os.environ.get("POSTGRES_PORT", "5432")), max_connections=20, stale_timeout=300, # 5 minutes - timeout=0, - autoconnect=True, + timeout=5, + autoconnect=False, autorollback=True, # Automatically rollback failed transactions ) else: diff --git a/app/main.py b/app/main.py index 58a5ffe..dd23244 100644 --- a/app/main.py +++ b/app/main.py @@ -8,6 +8,8 @@ from fastapi import Depends, FastAPI, Request from fastapi.openapi.docs import get_swagger_ui_html from fastapi.openapi.utils import get_openapi +from .db_engine import db + # from fastapi.openapi.docs import get_swagger_ui_html # from fastapi.openapi.utils import get_openapi @@ -68,6 +70,17 @@ app = FastAPI( ) +@app.middleware("http") +async def db_connection_middleware(request: Request, call_next): + db.connect(reuse_if_open=True) + try: + response = await call_next(request) + finally: + if not db.is_closed(): + db.close() + return response + + logger.info(f"Starting up now...")