我正在尝试用 django 实现持久数据库连接池。 其中一种选择是使用内置的
psycopg2.pool
代码,它提供不同类型的池(PersistentConnectionPool、ThreadedConnectionPool 等),但没有关于该主题的 psycopg2 文档。
那么,有人在这个方向做过任何工作或者有一些工作代码吗?我只是不想重新发明轮子。
谢谢。
Django 不支持连接池。 从技术上讲,您可能可以编写一个使用 psycopg2 的 django 数据库后端,但我认为使用外部进程进行连接池会更好。 看看 pgpool 就知道了。
这在 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
文档。