クレールプールde conexiones
デプールデConexionesの
Es un conjunto limitado de conexiones hacia una base de datos, estas conexiones son reutilizables por los usuarios, este es manejado por un servidor de aplicaciones.
アプルカシ
conexion.py
psycopg2
輸入業者pool
from psycopg2 import pool
class Conexion:
__DATABASE = 'test_db'
__USERNAME = 'postgres'
__PASSWORD = 'admin'
__DB_PORT = '5432'
__HOST = '127.0.0.1'
__MIN_CON = 1
__MAX_CON = 5
__pool = None**
#Obteniendo varias coexiones a la base de datos con pool
@classmethod
def obtenerPool(cls):
if cls.__pool == None:
try:
cls.__pool = pool.SimpleConnectionPool(
cls.__MIN_CON,
cls.__MAX_CON,
host=cls.__HOST,
user=cls.__USERNAME,
password=cls.__PASSWORD,
port=cls.__DB_PORT,
database=cls.__DATABASE)
logger.debug(f'Creacion pool exitosa: {cls.__pool}')
return cls.__pool
except Exception as e:
logger.error(f'Errror al crear el pool de conexiones: {e}')
sys.exit()
else:
return cls.__pool
#Obteniendo la conexion del pool
@classmethod
def obtenerConexion(cls):
conexion = cls.obtenerPool().getconn()
logger.debug(f'Conexión obtenida del pool: {conexion}')
return conexion
#Regresar el objeto conexion al pool
@classmethod
def liberarConexion(cls, conexion):
cls.obtenerPool().putconn(conexion)
#Cerrando todas las conexiones del pool
@classmethod
def cerrarConexiones(cls):
cls.obtenerPool().closeall()
logger.debug(f'Cerramos todas las conexiones del pool: {cls.__pool}')
if __name__ == "__main__":
#Obtener una conexion a partir del pool
conexion1 = Conexion.obtenerConexion()
conexion2 = Conexion.obtenerConexion()
#Regresamos las conexiones al pool
Conexion.liberarConexion(conexion1)
Conexion.liberarConexion(conexion2)
#Cerramos el pool
Conexion.cerrarConexiones()
#error el pool ya esta cerrado
#conexion3 = Conexion.obtenerConexion()
Reference
この問題について(クレールプールde conexiones), 我々は、より多くの情報をここで見つけました https://dev.to/luiszapatayamo/crear-pool-de-conexiones-con-psycopg2-y-python-4m65テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol