美文网首页
Python 数据库连接池的正确打开方式

Python 数据库连接池的正确打开方式

作者: zhaylon | 来源:发表于2019-07-23 09:12 被阅读0次

    在单独模块中定义数据库连接池对象:

    # dbconnection.py
    from DBUtils.PooledDB import PooledDB
    
    dbpools = PooledDB(creator=sql_driver, mincached=mincache, maxcached=maxcache, maxconnections=maxconnections, host=host, port=port, user=user, password=password )
    

    在主程序中导入该模块:

    # main.py
    import dbconnection
    

    问题来了:
    当我们在程序里导入另一个模块或者导入另一个模块的函数或者类的时候,一旦导入,该模块里的代码就会被执行。这意味着,当我们启动程序的时候,数据库连接池dbpools对象会先被创建,创建时会去连接数据库,而这是一个很耗时的操作,会导致程序启动的延迟,若连接数据库失败,程序将无法启动,这在一些场景下不符合运行逻辑。
    解决方法:
    将连接池对象的初始化操作封装成函数,在需要的时候调用该函数,如下所示:

    # dbconnection.py
    from DBUtils.PooledDB import PooledDB
    
    dbpools = None
    def init_dbpools():
        global dbpools
        dbpools = PooledDB(creator=sql_driver, mincached=mincache, maxcached=maxcache, maxconnections=maxconnections, host=host, port=port, user=user, password=password )
    

    相关文章

      网友评论

          本文标题:Python 数据库连接池的正确打开方式

          本文链接:https://www.haomeiwen.com/subject/bvqelctx.html