我设置如下DATABASE设置并运行Django App。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'orcl',
'USER': 'smkim',
'PASSWORD': '1123',
'HOST': '168.192.15.18',
'PORT': '1521',
'CONN_MAX_AGE': 10,
'OPTIONS': {'threaded': True}
}
}
为了确保如果Django打开10个持久连接,我会发送如下的SQL。
SELECT username FROM v$session WHERE username='SMKIM';
但是,此命令只返回2条记录(这是因为我生成了一个进程,因此两个进程分别有一个连接)。
为什么Django只打开2个连接,即使我设置了10个持久连接?</ p>
(ps。该应用正在使用线程池(5))
答案 0 :(得分:4)
'CONN_MAX_AGE'
在关闭之前设置一个连接的年龄,而不是应该有多少连接的年龄,请参阅docs:
CONN_MAX_AGE
默认值:0
数据库连接的生命周期,以秒为单位。使用0关闭 每个请求结束时的数据库连接 - Django的历史 行为 - 无限制持久连接无。
因此当Django需要一个并且没有其他开放连接时,将打开连接,尽管DB可以关闭这样的“持久性”连接。在它的一面连接。有关详细信息,请参阅docs section。