python多线程下连接SQL server
在多线程下用pymssql连接sql server偶尔会出现连接失败的错误,所以考虑创建数据库连接池,主要通过python的DBUtils库实现,下载直接pip install dbutils.
import pymssql from DBUtils.PooledDB import PooledDB class ConnSql(object): def __init__(self): self.pool = self.create_pool() def create_pool(self): """ 创建数据库连接池 :return: 连接池 """ pool = PooledDB(creator=pymssql, maxconnections=32, # 连接池允许的最大连接数,0和None表示不限制连接数 mincached=15, # 初始化时,链接池中至少创建的空闲的链接,0表示不创建 maxcached=0, # 链接池中最多闲置的链接,0和None不限制 maxusage=None, # 一个链接最多被重复使用的次数,None表示无限制 blocking=True, # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错 host='127.0.0.1:1433', user='MobileDB', password='', ping=0, database='Test', charset='utf8') return pool def test(self): conn = self.pool.connection() cursor = conn.cursor() print(conn) print(cursor) if __name__ == '__main__': ConnSql().test() # <DBUtils.PooledDB.PooledDedicatedDBConnection object at 0x000001FE86B9A828> # <DBUtils.SteadyDB.SteadyDBCursor object at 0x000001FE86E16A20>