创建一个KingbaseES的连接池是一个比较耗时及耗资源的操作,所在在ksycopg2中提供了pool模块。这个模块提供了几个纯Python类,它们直接在客户端程序中实现简单的连接池。
- 模块组成
1.1. 基类
类ksycopg2.pool.AbstractConnectionPool(minconn,maxconn,*args,kwargs)
实现通用的基于键的池化代码的基类。
新的minconn连接会自动创建。该池将最多支持约maxconn连接。*args和kwargs被传递给connect()函数。
预计子类将实现以下方法:
getconn(key=None)
从池中获取连接。
在关键的参数是可选的:如果使用的话,连接将被关联到钥匙,并呼吁getconn()再次使用相同的密钥将返回相同的连接。
putconn(conn,key=None,close=False )
放下一个连接。
如果close是True,则丢弃池中的连接。 key应该与getconn()对应。
closeall( )
关闭池处理的所有连接。
请注意,所有连接都已关闭,包括应用程序最终使用的连接。
1.2. 子类 - SimpleConnectionPool
Class ksycopg2.pool.SimpleConnectionPool(minconn,maxconn,*args,**kwargs)
不能跨不同线程共享的连接池。
注意:这个池类只对单线程应用程序有用。
1.3. 子类 - ThreadedConnectionPool
Class ksycopg2.pool.ThreadedConnectionPool(minconn,maxconn,*args,**kwargs)
与线程模块一起使用的