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处增加缓存数据库连接的功能。

Python 数据库连接池创建函数优化:支持缓存数据库连接

原文地址: https://www.cveoy.top/t/topic/nuGw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录