在多線程下用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>
