重新思考数据库的异步连接池

async-repool的Python项目详细描述


https://img.shields.io/pypi/v/async-repool.svghttps://img.shields.io/pypi/l/async-repool.svghttps://gitlab.com/AnjiProject/async-repool/badges/master/build.svg

async-repool是一个python库,它提供了一个基于异步的连接池管理,用于访问rethinkdb数据库。async-repool创建并维护一个可配置的活动连接池,该池连接到RethinkDB数据库。这些连接可以通过一个基本的api单独使用。

在内部,repool使用的pythonAsyncIO Queue类不是线程安全的。这意味着同一个连接池不能在多个线程之间共享,请改为对进程工作线程使用asyncio。

这只是repool的基于异步的克隆。

安装

async-repool作为pypi上的python库提供。使用pip安装非常简单:

$ pip install async_repool

这将安装async-repool,并重新考虑数据库依赖性。

基本用法

使用默认连接配置的新连接池可以通过以下方式创建:

fromasync_repoolimportAsyncConnectionPoolpool=AsyncConnectionPool(dict())# Required argument is kwargs for R.connect functionawaitpool.init_pool()conn=awaitpool.acquire()#returns a Connection instanceawaitr.table('heroes').run(conn)#do RethinkDB stuff# ...pool.release(conn)#put back connection to the poolawaitpool.release_pool()#release pool (close rethinkdb connections)# ...asyncwithpool.connect()asconn1:# do something with conn1# pool.release(conn1) is automatically called after leaving the with code block

可选参数

AsyncConnectionPool创建接受许多可选参数:

  • pool_size:设置池大小,即同时打开的连接数(默认值为3)。
  • connection_ttl:将连接时间设置为有效。超过ttl的连接将在获取时自动关闭并重新打开(默认值=3600秒,设置为0表示禁用)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
检查java中两个链表之间的子集   java仅在findViewById()下显示一个ImageButton   在Java Graphics2D中,文本如何在矩形上居中对齐?   java需要一个用于电子表格计算器的正则表达式   ^java中的运算符   java通过一些属性配置文件根据环境动态更改wsdl端点URL   java Ebean/Play框架关系未更新   集合如何将POJO列表转换为Java流中的映射<String,List>?   java为什么JFrame不显示整个图像?   java如何将调用静态导入的泛型方法的结果传递给另一个方法?   迭代器或foreach中的java延迟   需要java socket logback日志接收器   在Java中初始化Map的静态数组   雅加达邮件Java MimeMail:解码后获得额外字符   java为什么这个xmldom解析器不能正确解析rtept、name和cmt标记?   java如何刷新Log4J2中的异步记录器(带中断器)   java使用构建插件pom生成的jar。xml作为同一pom中的依赖项   java基于位置的序列ADT如何在O(1)时间内插入元素?   java ORM实体与DDD实体   Java对象分配