代码之家  ›  专栏  ›  技术社区  ›  Dante

Django::配置不当:池不支持持久连接

  •  0
  • Dante  · 技术社区  · 10 月前

    我最近升级到Django 5.1,并使用以下设置配置了数据库池选项:

    DATABASES["default"]["OPTIONS"] = {
        "pool": {"min_size": 2, "max_size": 4, "timeout": 10}
    }
    DATABASES["default"]["CONN_MAX_AGE"] = None
    
    

    但是,我遇到了以下错误: ImproperlyConfigured: Pooling doesn't support persistent connections.

    我理解删除 CONN_MAX_AGE = None 将解决这个问题,但我想更深入地了解这个局限性。具体来说,对使用具有池的持久连接的限制是唯一的吗 Django的实现 ,或者它是否延伸到 PostgreSQL (或其他数据库)一般?此外,这种不兼容的根本原因是什么?

    1 回复  |  直到 10 月前
        1
  •  1
  •   Abdul Aziz Barkat    10 月前

    Django 5.1中的连接池选项使用 psycopg_pool.ConnectionPool 为了处理池逻辑,Django不会自己实现逻辑。Django只是在每次请求后将连接返回到这个池,并将关闭连接的处理留给它,因为这应该由池来处理。

    这个 ConnectionPool 类有自己的选项,可以通过传递给的字典进行配置 pool 选项。如果你想要类似的东西 CONN_MAX_AGE 您可以配置 max_lifetime 争论。