• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共43篇

    python3.X - Web - Django3.2.9

关闭

返回栏目

关闭

返回python3.X - Web - Django3.2.9栏目

21 - 配置 - django-db-connection-pool - 设置连接池

作者:

贺及楼

成为作者

更新日期:2024-04-06 11:36:46

django-db-connection-pool
  1. pip install django-db-connection-pool

settings.py设置
INSTALLED_APPS中加入dj_db_conn_pool
将 ENGINE django.db.backends.mysql 更改为 dj_db_conn_pool.backends.mysql
POOL_OPTIONS参数是dj_db_conn_pool的配置

  1. DATABASE_DEFAULT = {
  2. # 'ENGINE': 'django.db.backends.mysql', # 原版
  3. 'ENGINE': 'dj_db_conn_pool.backends.mysql', #dj_db_conn_pool版
  4. 'NAME': '库名',
  5. 'HOST': '127.0.0.1',
  6. 'USER': '用户名',
  7. 'PASSWORD': '密码',
  8. 'PORT': '3306',
  9. 'CONN_MAX_AGE': 0, # 默认: 0 一个数据库连接的寿命,以秒为整数。使用 0 在每次请求结束时关闭数据库连接——这是 Django 的历史行为,使用 None 则是无限的持久连接。
  10. 'OPTIONS': {
  11. 'charset': 'utf8mb4',
  12. 'connect_timeout': 30, # 连接超时时间
  13. },
  14. 'POOL_OPTIONS': { # dj_db_conn_pool的参数
  15. 'POOL_SIZE': 1,
  16. 'MAX_OVERFLOW': 11,
  17. 'RECYCLE': 60,
  18. }
  19. }

PS:POOL_SIZE(连接池容量)、MAX_OVERFLOW(连接池容量向上浮动最大值) 这两个参数包含在 POOL_OPTIONS 内
例如下面的配置,default 的连接池常规容量为10个连接,最大浮动10个, 即为:在 default 连接池创建后,随着程序对连接池的请求,连接池内连接将逐步增加到10个,如果在连接池内连接 全部用光后,程序又请求了第11个连接,此时的连接池容量将短暂超过 POOL_SIZE,但最大不超过 POOL_SIZE + MAX_OVERFLOW,
如果程序请求 default 数据库的连接数量超过 POOL_SIZE + MAX_OVERFLOW,那么连接池将一直等待直到程序释放连接, 请注意线程池对数据库连接池的使用,如果线程池大于连接池,且线程无主动释放连接的动作,可能会造成其他线程一直阻塞。

RECYCLE:连接超时时间,如果设置为 -1 以外的值,则表示连接回收之间的秒数,这意味着在结帐时,如果超过此超时,则连接将关闭并替换为新打开的连接。默认为 -1。