HiveNetCore.connection_pool module¶
连接池处理框架
- class HiveNetCore.connection_pool.AIOConnectionPool(creator: Any, pool_connection_class: Any, args: list = [], kwargs: dict = {}, connect_method_name: str = 'connect', max_size: int = 100, min_size: int = 0, connect_on_init: bool = False, blocking: bool = True, blocking_interval: float = 0.1, get_timeout: float = 10, free_idle_time: float = 30, ping_on_get: bool = False, ping_on_back: bool = False, ping_on_idle: bool = True, ping_interval: float = 20, ping_args: list = [], ping_kwargs: dict = {}, daemon_interval: float = 0.1, pool_extend_paras: dict = {}, logger: Logger = None)[源代码]¶
基类:
object支持异步模式的连接池处理框架
抽象连接池的公共方法形成框架, 并提供基本的处理功能, 简化连接池编程的难度
- __init__(creator: Any, pool_connection_class: Any, args: list = [], kwargs: dict = {}, connect_method_name: str = 'connect', max_size: int = 100, min_size: int = 0, connect_on_init: bool = False, blocking: bool = True, blocking_interval: float = 0.1, get_timeout: float = 10, free_idle_time: float = 30, ping_on_get: bool = False, ping_on_back: bool = False, ping_on_idle: bool = True, ping_interval: float = 20, ping_args: list = [], ping_kwargs: dict = {}, daemon_interval: float = 0.1, pool_extend_paras: dict = {}, logger: Logger = None)[源代码]¶
初始化连接池
- 参数
creator (Any) –
连接创建模块或对象, 结合connect_method_name、args、kwargs创建连接
如果connect_method_name不为None: conn = creator.connect_method_name(*args, **kwargs)
pool_connection_class (Any) – 连接池连接对象实现类(继承PoolConnectionFW的类对象)
args (list) – default=[], 进行连接创建的固定位置参数
kwargs (dict) – default={}, 进行连接创建的kv参数
connect_method_name (str) – default=’connect’, 连接创建模块要执行的连接方法, 传None代表直接使用creator创建连接
max_size (int) – default=100, 连接池的最大连接数
min_size (int) – default=0, 连接池中最少保持的连接数(空闲也不删除)
connect_on_init (bool) – default=False, 是否在初始化时创建一个连接
blocking (bool) – default=True, 当获取不到连接时是否阻塞等待, 如果为False则代表直接抛出异常
blocking_interval (float) – default=0.1, 获取连接阻塞时的循环间隔时长, 单位为秒
get_timeout (float) – default=10, 等待连接获取的超时时间, 单位为秒, 0或None代表永不超时
free_idle_time (float) – default=30, 释放空闲连接的时间, 单位为秒, 0或None代表永不释放
ping_on_get (bool) – default=False, 是否在外部获取连接时先检查连接是否有效(注: 在ping_interval时间内不会检查)
ping_on_back (bool) – default=False, 是否在外部发挥连接时检查连接是否有效(注: 在ping_interval时间内不会检查)
ping_on_idle (bool) – default=True, 是否对空闲连接进行是否有效的检查
ping_interval (float) – default=20, 空闲连接有效检查的间隔时长, 单位为秒
ping_args (list) – default=[], 检查连接有效性的函数固定位置参数
ping_kwargs (dict) – default={}, 检查连接有效性的函数kv参数
daemon_interval (float) – default=1, 守护程序的循环间隔时长, 单位为秒
pool_extend_paras (dict) – default={}, 连接池的扩展参数, 可传递到连接对象使用的个性参数
logger (Logger) – default=None, 日志对象
- property current_size¶
获取连接池当前大小
@property {int} - 连接池当前大小
- class HiveNetCore.connection_pool.PoolConnectionFW(pool: AIOConnectionPool, creator: Any, args: list = [], kwargs: dict = {}, logger: Logger = None)[源代码]¶
基类:
object连接池的通用连接对象框架(封装实际的连接对象)
- __init__(pool: AIOConnectionPool, creator: Any, args: list = [], kwargs: dict = {}, logger: Logger = None)[源代码]¶
构造函数
- 参数
pool (AIOConnectionPool) – 创建该连接的连接池对象
creator (Any) –
连接创建模块或对象, 结合connect_method_name、args、kwargs创建连接
如果connect_method_name不为None: conn = creator.connect_method_name(*args, **kwargs)
args (list) – default=[], 进行连接创建的固定位置参数
kwargs (dict) – default={}, 进行连接创建的kv参数
logger (Logger) – default=None, 日志对象