Skip to content

Oracle连接池(Oracle Connection Pool),单线程、多线程都能用

License

Notifications You must be signed in to change notification settings

MaiXiaochai/OraclePool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OraclePool


Oracle连接池 (Oracle Connection Pool),单线程多线程都可用

基本信息
  • 编程语言
    • Python >= 3.9
  • 所需库
    • cx_Oracle
使用方法
更新历史:

[2023-03-27]

  • 调整默认参数,使得连接池默认为静态连接池。即,最大连接数和最小连接数一致,增长数为0
  • 设置了getmode=Oracle.SPOOL_ATTRVAL_WAIT,使得当连接池中没有可用连接时,会等待,而不是报错
  • 添加了大量来自官方文文档的注释,并翻译了其中部分关键内容,解释一些设置的来龙去脉

[2023-03-17]

  • pool_size默认值调整为10,并重命名为max_size;
  • 添加min_size参数,默认为1,方便单线程程序使用;
  • 添加threaded=True参数,其本身线程安全,不用额外加锁,大大提升效率;
  • increment默认为1,并且作为可选参数。

[2022-04-20]

  • 去掉对dbutils的使用,完全使用cx-oracle库进行重构
  • 重构后的Oracle连接池代码更加简洁,使用更加顺畅
  • 部分方法名进行了微调,与cx-oracle库自身的某些方法名保持一致
    • fetch_one -> fetchone
    • fetch_many -> fetchmany
    • execute_many -> executemany
  • 删去了execute_sql方法,合并到execute方法中
  • 优化了部分方法的参数,使得其运行更加高效,代码更加简洁
  • 各个方法都自动commit,不用显示调用

[2020-04-21]

  • 修复连接用完后,不放回连接池的bug
  • 修复使用类名称获取pool时的类名称错误(OrclConnPool),改为用self
  • 改进了对config连接信息的判断逻辑,使得config的配置更加简化
  • 改进了新的注释,使用更加清晰
  • 改进了部分代码的格式,使得其更规范
  • 新增fetch_allfetch_one
  • 优化了demo内容和格式,使得其更规范

[2020-01-06]

  • 修复一个Bug,该Bug导致fetch_all执行不带参数的SQL时会报错。

    感谢 CSDNwda406714601指出这个BUG。

[2019-12-27]

  • 修复一个Bug,该Bug导致连接池中有且仅有一个连接资源被使用,其余空闲。

[2019-05-29]

  • oracle_conn_pool.py 文件为主文件
  • requirements.txt 中为所需要的包,使用方法如下

    pip install -r requirements.txt

  • 内有测试函数,具体的额外的参数修改可以参考类内部的说明

About

Oracle连接池(Oracle Connection Pool),单线程、多线程都能用

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages