python - Django - PostgreSQL 设置 statement_timeout

标签 python sql django postgresql django-settings

我正在使用 Django 1.10 和 PostgreSQL 数据库。 我想弄清楚我是否可以从 Django 设置 statement_timeout。 似乎我不能像 connect_timeout 那样(在 settings.py 中):

DATABASES[DEFAULT]['OPTIONS'] = {
    'connect_timeout': float(os.getenv('DEFAULT_DB_OPTIONS_TIMEOUT', 5))
}

我看到了这样的东西,但我找不到验证它是否确实有效的方法:

DATABASES[DEFAULT]['OPTIONS'] = {
    'options': '-d statement_timeout=700'
}

我知道我可以直接从数据库中设置它:

set statement_timeout=5000

但我正在寻找一种从 Django 中实现它的方法。

最佳答案

没有其他“Django”方法可以做到这一点。 Django 的方法是像您指出的那样使用您的 settings.py ,除了您的示例不太正确。应该是:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        ...
        'OPTIONS': {
            'options': '-c statement_timeout=5000',
            ...
        }
    }
}

'OPTIONS' 字典用于数据库连接字符串的参数。可以找到 Postgres 参数列表 here . options 连接字符串参数允许您为 postgres 指定命令行参数。 -c 选项解释 here .

请注意,超时是以毫秒为单位测量的,因此上面的 5000 表示 5 秒。

关于python - Django - PostgreSQL 设置 statement_timeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51360469/

相关文章:

php - 使用 PHP exec() 运行 Python 脚本

python - Flask session 在蓝图中不持久

c# - 将数据表传递给存储过程

python - Django 根据值从查询集中获取不同的结果

Python 迭代工作表并删除列

sql - SQL Server 中的 XML 循环

c# - Web 引用中断 SSIS 包

python - ORA-01861 : literal does not match format string when executing get model object in django

python - Django url 不匹配

Python - 循环多维字典的更好方法