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)

    如果connect_method_name为None: conn = creator(*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, 日志对象

async back_to_pool(conn: Any)[源代码]

将完成使用的连接归还到连接池

参数

conn (Any) – PoolConnectionFW实现对象

async close()[源代码]

关闭连接池

async connection()[源代码]

获取一个有效连接

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)

    如果connect_method_name为None: conn = creator(*args, **kwargs)

  • args (list) – default=[], 进行连接创建的固定位置参数

  • kwargs (dict) – default={}, 进行连接创建的kv参数

  • logger (Logger) – default=None, 日志对象

async close()[源代码]

关闭连接

async ping(*args, **kwargs) bool[源代码]

连接有效性的检查函数

返回

返回检查结果

返回类型

bool

exception HiveNetCore.connection_pool.TooManyConnections[源代码]

基类:Exception

连接数已太多抛出的异常