首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在django中设置数据库连接超时

如何在django中设置数据库连接超时
EN

Stack Overflow用户
提问于 2009-07-05 17:38:11
回答 2查看 25K关注 0票数 15

我有mysql数据库作为django的引擎。Django认为nginx通过fastcgi在1分钟内超时(之后nginx显示"504网关超时“)。

如果数据库关闭,django会尝试重新连接到DB并等待它的响应。等待响应时间过长(超过1分钟),nginx向客户端返回504错误码。

如何在django中为db connecton设置超时?处理这个事件并返回给客户端一个漂亮的页面的正确方法是“对不起,数据库现在停止服务。请稍后再试”,而不是技术上的504错误页面?

EN

回答 2

Stack Overflow用户

发布于 2009-07-05 18:21:44

仅适用于DJANGO<=1.2的

您可以使用DATABASES设置的OPTIONS字典。

选项名称取决于您的DB后端,但对于PostgreSQL,它将是connect_timeout

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        …
        'OPTIONS': {
            'connect_timeout': 5,
        }
    }
}
票数 31
EN

Stack Overflow用户

发布于 2009-07-05 18:00:34

settings.py中的DATABASE_OPTIONS是传递给正在使用的任何数据库模块的connect方法的额外关键字args的字典;根据MySqlDB关于connect的文档,正如另一个答案所说的那样,connect_timeout值确实是您想要的值(我之前把它弄错了,它因后端而异--例如,如果您的后端是SQLite,它就拼写为timeout )。

对于自定义错误页面,您可以遵循Django docs中关于编写您自己的异常中间件的建议(我相信在贡献的软件中可以找到仅显示自定义页面的简单异常中间件,但滚动您自己的异常中间件可能比在web上搜索现有代码更快,而且您可能无论如何都必须调整代码;-)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1084488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档