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>

浙公网安备 33010602011771号