Files
2026-07-15 18:37:19 +09:00

39 lines
1.1 KiB
Python

import mysql.connector.pooling
import logging
logger = logging.getLogger("db_pool")
DB_CONFIG = {
"host": "localhost",
"port": 3306,
"user": "ctnt_root",
"password": "Umsang6595!!",
"database": "carbon_cutting_mc_db",
"autocommit": True,
}
try:
dbpool = mysql.connector.pooling.MySQLConnectionPool(
pool_name="carbon_cutting_pool",
pool_size=5,
pool_reset_session=True,
**DB_CONFIG
)
logger.info("[DB POOL] Connection pool initialized (pool_size=5)")
except Exception as e:
logger.error(f"[DB POOL ERROR] Failed to initialize pool: {e}", exc_info=True)
dbpool = None
def get_pooled_connection():
"""풀에서 연결 획득"""
if dbpool is None:
raise RuntimeError("[DB POOL ERROR] Pool not initialized")
conn = dbpool.get_connection()
try:
# DB 세션이 만료되거나 끊어진 경우 자동 재연결 시도
conn.ping(reconnect=True, attempts=3, delay=1)
except Exception as e:
logger.warning(f"[DB POOL] Ping/Reconnect failed: {e}")
return conn