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