Django-PostgreSQL设置statement_timeout

时间:2018-07-16 11:12:19

标签: python django postgresql

我正在使用Django 1.10和PostgreSQL DB。 我正在尝试确定是否可以从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做到这一点的方法。

1 个答案:

答案 0 :(得分:1)

没有其他“ Django”方法。 Django的方式是按照您的指示使用settings.py,除非您的示例不太正确。应该是:

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

“ OPTIONS”字典用于数据库连接字符串的参数。可以在here中找到Postgres参数列表。 options连接字符串参数使您可以为postgres指定命令行参数。 here说明了-c选项。

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