Django CONN_MAX_AGE选项无法打开持久连接

时间:2016-02-22 12:13:27

标签: python django persistent-connection

我设置如下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))

1 个答案:

答案 0 :(得分:4)

'CONN_MAX_AGE'在关闭之前设置一个连接的年龄,而不是应该有多少连接的年龄,请参阅docs

  

CONN_MAX_AGE

     

默认值:0

     

数据库连接的生命周期,以秒为单位。使用0关闭   每个请求结束时的数据库连接 - Django的历史   行为 - 无限制持久连接无。

因此当Django需要一个并且没有其他开放连接时,将打开连接,尽管DB可以关闭这样的“持久性”连接。在它的一面连接。有关详细信息,请参阅docs section