diff --git a/app/db_engine.py b/app/db_engine.py index c1979cf..f84143d 100644 --- a/app/db_engine.py +++ b/app/db_engine.py @@ -23,8 +23,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 3de0bd3..d7c3b5a 100644 --- a/app/main.py +++ b/app/main.py @@ -7,6 +7,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 @@ -67,6 +69,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...")