十念 发表于 2024-9-8 23:22:21

Django配置连接池:使用django-db-connection-pool配置连接池

一、该三方库文档使用

github地点:
https://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.mdhttps://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8https://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.md1、选择指定版本,检察指定版本的文档和配置:
                        ​​​​​​​        ​​​​​​​        https://img-blog.csdnimg.cn/direct/f71f2881ef3549fd9cd19b5d078098ea.png

2、目前配置的1.2.5版本
3、使用前检察两个文件
        ​​​​​​​        ​​​​​​​        https://img-blog.csdnimg.cn/direct/c229570e87554a1d958b02c77dd6fba9.png
4、README_CN.md: 是文档说明的中文版
5、pyproject.toml: 是django-db-connection-pool包的依靠情况

二、安装

1、安装所有支持的数据库组件
$ pip install django-db-connection-pool==1.2.5 2、选择部分支持的数据库组件
$ pip install django-db-connection-pool==1.2.5 3、例如只选择mysql的组件
$ pip install django-db-connection-pool==1.2.5 4、1.2.5版本的依靠情况
通用依靠:
python版本>=3.4
Django>=2.0
SQLAlchemy>=1.4.24
sqlparams>=4.0.0

数据库客户端:
jdbc = ["JPype1>=1.3.0"]
mysql = ["mysqlclient>=1.3.0"]
odbc = ["pyodbc>=4.0.34"]
oracle = ["cx-Oracle>=6.4.1"]
postgresql = ["psycopg2>=2.8.6"]
psycopg2 = ["psycopg2>=2.8.6"]
psycopg3 = ["psycopg>=3"]

三、在django配置文件中配置

settings.py
MYSQL_DATA = {
    "HOST": "127.0.0.1",
    "PORT": 3306,
    "USER": "root",
    "PASSWORD": "123456",
    "NAME": "standard"
}

DATABASES = {
    "default": {
      # "ENGINE": "django.db.backends.mysql",#django原生客户端
      "ENGINE":"dj_db_conn_pool.backends.mysql", #使用三方客户端
      "HOST": MYSQL_DATA.get('HOST'),
      "PORT": MYSQL_DATA.get('PORT'),
      "USER": MYSQL_DATA.get('USER'),
      "PASSWORD": MYSQL_DATA.get('PASSWORD'),
      "NAME": MYSQL_DATA.get('NAME'),
      'POOL_OPTIONS' : { #连接池的参数
            'POOL_SIZE': 1,
            'MAX_OVERFLOW': 1,
            'RECYCLE': 24 * 60 * 60,
            'PRE_PING': True,
            'ECHO': False,
            'TIMEOUT': 30,
      }
    }
}
参数说明:
1、POOL_SIZE:项目启动时,连接池预先创建的连接数目
2、MAX_OVERFLOW:当POOL_SIZE的连接数被使用完,还可以根据体系情况再创建的连接数
3、最大连接数=POOL_SIZE+MAX_OVERFLOW,默认两个都是10
4、RECYCLE : 连接超时时间,超过就关闭连接替换成新打开的连接。默认是-1,即不超时。
5、PRE_PING : 从连接池取出连接时,是否先ping以下数据库,检测连接是否还存活。默认True
6、ECHO:是否开启SQLAlchemy的SQL语句日志。默认False,在调试时可以使用。
7、TIMEOUT:定义连接池中获取连接的超时时间,单元秒。如果指定时间内无法获取到可用的连接,将会引发超时异常。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Django配置连接池:使用django-db-connection-pool配置连接池