Django 数据库连接池与 psycopg2.pool

问题描述 投票:0回答:2

我正在尝试用 django 实现持久数据库连接池。 其中一种选择是使用内置的

psycopg2.pool
代码,它提供不同类型的池(PersistentConnectionPool、ThreadedConnectionPool 等),但没有关于该主题的 psycopg2 文档。

那么,有人在这个方向做过任何工作或者有一些工作代码吗?我只是不想重新发明轮子。

谢谢。

database django connection persistence pool
2个回答
4
投票

Django 不支持连接池。 从技术上讲,您可能可以编写一个使用 psycopg2 的 django 数据库后端,但我认为使用外部进程进行连接池会更好。 看看 pgpool 就知道了。


0
投票

这在 Django 5.1 中已成为可能。例如,使用

psycopg
时,您可以将
OPTIONS
内的“pool”选项设置为要传递给
ConnectionPool
的字典,或传递给
True
以使用
ConnectionPool
默认值。

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        # ...
        "OPTIONS": {
            "pool": {
                "min_size": 2,
                "max_size": 4,
                "timeout": 10,
            }
        },
    },
}

有关更多信息,请查看 Django 项目的 发行说明

psycopg_pool.ConnectionPool
文档

© www.soinside.com 2019 - 2024. All rights reserved.