Django CONN_MAX_AGE 选项不打开持久连接
Django CONN_MAX_AGE option doesn't open persistent connection
我设置了如下所示的数据库设置和 运行 Django 应用程序。
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';
但是,这个命令只是returns 2条记录(这是因为我生成了一个进程,结果两个进程分别有一个连接)。
为什么我设置了10个持久连接,Django却只打开2个连接?
(ps。应用程序正在使用线程池(5) )
'CONN_MAX_AGE'
设置一个连接在关闭之前的存在时间,而不是应该有多少个,参见 docs:
CONN_MAX_AGE
Default: 0
The lifetime of a database connection, in seconds. Use 0 to close
database connections at the end of each request — Django’s historical
behavior — and None for unlimited persistent connections.
所以当 Django 需要一个连接并且没有其他打开的连接时,连接将被打开,尽管 DB 可以在它的一侧关闭这样的 'persistent' 连接。有关详细信息,请参阅 docs section。
我设置了如下所示的数据库设置和 运行 Django 应用程序。
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';
但是,这个命令只是returns 2条记录(这是因为我生成了一个进程,结果两个进程分别有一个连接)。
为什么我设置了10个持久连接,Django却只打开2个连接?
(ps。应用程序正在使用线程池(5) )
'CONN_MAX_AGE'
设置一个连接在关闭之前的存在时间,而不是应该有多少个,参见 docs:
CONN_MAX_AGE
Default: 0
The lifetime of a database connection, in seconds. Use 0 to close database connections at the end of each request — Django’s historical behavior — and None for unlimited persistent connections.
所以当 Django 需要一个连接并且没有其他打开的连接时,连接将被打开,尽管 DB 可以在它的一侧关闭这样的 'persistent' 连接。有关详细信息,请参阅 docs section。