Cómo implementar el grupo de conexiones MySQL en Python y agregar la función de caducidad de caché
hora de importación
cadena de importación
importar redis
clase PooledConnection:
#Construir una conexión Ejemplo de grupo
def __init __(self, maxconnections, connstr,dbtype):
from Queue import Queue
self._pool = Queue(maxconnections) #Create cola
self.connstr = connstr
self._pool = Cola(maxconnections)_pool = Cola(maxconnections) # Crear cola
self.connstr = connstr
p>self.dbtype=dbtype
self.maxconnections=maxconnections
# Cree un enlace con la cantidad de enlaces que proporcionó y escríbalo en la cola justo creado.
intente:
para i en el rango (maxconnections):
self.fillConnection(self.CreateConnection(connstr,dbtype))
excepto excepción, e:
elevar e
def fillConnection(self,conn):
intentar:
self._pool. put(conn)
excepto excepción, e:
def fillConnection(self,conn).> plantea "fillConnection error:"+str(e)
def returnConnection(self, conn):
prueba:
self._pool.put(conn)
excepto excepción,e:
generar "error de conexión de retorno:"+str(e)
def getConnection(self):
intentar:
devolver self._pool.get()
excepto excepción, e:
plantear "getConnection error:"+str(e)
def ColseConnection(self,conn):
intente:
self._pool.get().
self.fillConnection(self.CreateConnection(connstr,dbtype))
excepto excepción, e:
plantea "Error de cierre de conexión:"+str(e)
def CreateConnection(self,connstr,dbtype):
if dbtype=='xxx':
pase
elif dbtype=='mysql':
intente:
db_conn = connstr.split("#");
#conndb=MySQLdb.connect(db=conf.mydb,host=conf.dbip,user=conf.myuser,passwd=conf.mypasswd);
conndb=MySQLdb. conectar(usuario=db_conndb,host=conf.dbip,usuario=conf.miusuario,passwd=conf.connect(usuario=db_conn[0],passwd=db_conn[1],host=db_conn[2],puerto=string.atoi (db_conn[3]),db=db_conn[ 4]);
conndb.clientinfo = 'grupo de conexiones de sincronización de datos de datasync.py';
conndb.ping(); /p>
excepto excepción, e:
elevar ' conn fuente de datos targetdb Exceptos,%s!!!!! (%s).'%(db
_conn[2],str(e))
Devolver Ninguno
#mysql Cree un grupo de conexiones de la siguiente manera:
connstring="xiaorui.cc#xiaoru .cc#xiaorui.cc#3306#dbname";
mysqlpool=PooledConnection(10,connstring, "mysql");
#GetConnection:
mysqlpool .getConnection()
Mysqlpool.