Python 数据库连接池创建函数优化:支持缓存数据库连接
def create_pool(*args, **kw): def _create_pool(db_ip = None, db_port = 0, db_sid = None, db_user = None, db_passwd = None, db_connect = 1, dbpool_size = 1, db_type = 'oracle', max_overflow = 0): _pool = None db_type = db_type.lower() if db_connect == 1: params = {'poolclass':NullPool} log.info('DB pool connect is disabled') else: params = {'pool_size':dbpool_size, 'max_overflow':max_overflow} log.info('DB pool connect size is {}, overflow is {}'.format(dbpool_size, max_overflow))
if db_type == 'oracle':
import cx_Oracle as dbModule
_pool = dbPoolManager(dbModule, **params)
connstr = '{}:{}/{}'.format(db_ip, db_port, db_sid)
_pool.set_connect(db_user, db_passwd, connstr, threaded = True)
elif db_type == 'mssql':
import pyodbc as dbModule
_pool = dbPoolManager(dbModule, **params)
connstr = 'DRIVER={{SQL Server}};SERVER={};port={};DATABASE={};UID={};PWD={};TDS_Version=8.0'.format(
db_ip, db_port, db_sid, db_user,
db_passwd)
_pool.set_connect(connstr, unicode_results=True)
elif db_type == 'mysql':
import MySQLdb as dbModule
_pool = dbPoolManager(dbModule, **params)
_pool.set_connect(host=db_ip,
port=db_port,
user=db_user,
passwd=db_passwd,
db=db_sid,
charset='utf8'
)
setattr(_pool, 'cache_pool', cache_pool) # 在此处添加缓存数据库连接
DatabaseException.DatabaseError = dbModule.DatabaseError
return _pool
在AAA处增加缓存数据库连接的功能。
原文地址: https://www.cveoy.top/t/topic/nuGw 著作权归作者所有。请勿转载和采集!