Loading app/helpers/db.py +11 −11 Original line number Diff line number Diff line Loading @@ -4,23 +4,23 @@ from psycopg.rows import dict_row @contextmanager def db_cursor(dict_results=False): conn = None cur = None try: conn = current_app.db_pool.getconn() cur = conn.cursor(row_factory=dict_row if dict_results else None) # --- Keepalive query --- cur.execute("SELECT 1;") # ---------------------- yield conn, cur except Exception as e: current_app.logger.error(f"Database error: {e}") current_app.db_pool.putconn(conn, close=True) with current_app.db_pool.connection() as conn: cur = conn.cursor() # --- Keepalive query --- cur.execute("SELECT 1;") with conn.cursor(row_factory=dict_row if dict_results else None) as cur: yield conn, cur if conn: conn.close() finally: if cur: cur.close() if conn: current_app.db_pool.putconn(conn) app/main.py +11 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ from flask import Flask, jsonify from psycopg_pool import ConnectionPool from redis import Redis from flask_jwt_extended import JWTManager from app.helpers.db import db_cursor from config import Config from controller import diploma, healthcheck, auth, language, keyword, experience, about, service, email from helpers.limiter import limiter Loading Loading @@ -50,6 +51,16 @@ def error404(error): return jsonify(error="Not Found", message=str(error.description)), 404 #https://github.com/psycopg/psycopg2/issues/829 @app.before_request def check_connection(): app.logger.info(f"pass into check connection") try: with db_cursor(dict_results=True) as (conn, cur): cur.execute("SELECT 1;") except Exception as e: app.logger.error(f"Database connection check failed: {e}") # app.register_blueprint(diploma.diploma_bp, url_prefix='/diploma') app.register_blueprint(diploma.diploma_bp) Loading Loading
app/helpers/db.py +11 −11 Original line number Diff line number Diff line Loading @@ -4,23 +4,23 @@ from psycopg.rows import dict_row @contextmanager def db_cursor(dict_results=False): conn = None cur = None try: conn = current_app.db_pool.getconn() cur = conn.cursor(row_factory=dict_row if dict_results else None) # --- Keepalive query --- cur.execute("SELECT 1;") # ---------------------- yield conn, cur except Exception as e: current_app.logger.error(f"Database error: {e}") current_app.db_pool.putconn(conn, close=True) with current_app.db_pool.connection() as conn: cur = conn.cursor() # --- Keepalive query --- cur.execute("SELECT 1;") with conn.cursor(row_factory=dict_row if dict_results else None) as cur: yield conn, cur if conn: conn.close() finally: if cur: cur.close() if conn: current_app.db_pool.putconn(conn)
app/main.py +11 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ from flask import Flask, jsonify from psycopg_pool import ConnectionPool from redis import Redis from flask_jwt_extended import JWTManager from app.helpers.db import db_cursor from config import Config from controller import diploma, healthcheck, auth, language, keyword, experience, about, service, email from helpers.limiter import limiter Loading Loading @@ -50,6 +51,16 @@ def error404(error): return jsonify(error="Not Found", message=str(error.description)), 404 #https://github.com/psycopg/psycopg2/issues/829 @app.before_request def check_connection(): app.logger.info(f"pass into check connection") try: with db_cursor(dict_results=True) as (conn, cur): cur.execute("SELECT 1;") except Exception as e: app.logger.error(f"Database connection check failed: {e}") # app.register_blueprint(diploma.diploma_bp, url_prefix='/diploma') app.register_blueprint(diploma.diploma_bp) Loading