当前位置:  开发笔记 > 后端 > 正文

CONN_MAX_AGE如何在Django中工作

如何解决《CONN_MAX_AGE如何在Django中工作》经验,为你挑选了0个好方法。

有人ELI5有什么CONN_MAX_AGE吗?我认为它的工作原理如下:

1)请求#1进入,打开数据库连接1

2)请求#1使用连接1做一些工作

3)请求#1完成.由于CONN_MAX_AGE非零(并且尚未达到年龄),因此连接保持打开状态.

4)请求#2进入,Django重新使用连接#1到数据库.

但这似乎并没有发生.我的网站上有一个页面,每15秒进行一次AJAX轮询.在我的开发环境中,我看到开放连接(select count(*) from pg_stat_activity)的数量,慢慢增长,直到最终我得到

OperationalError: FATAL:  sorry, too many clients already

所以我想知道我哪里出错了.CONN_MAX_AGE是否仅用于在单个HTTP请求中保持连接打开?

更新:

仔细查看文档,我看到了:

开发服务器为它处理的每个请求创建一个新线程,否定持久连接的影响.在开发过程中不要启用它们.

啊,所以这似乎意味着一个连接"属于"一个线程.(并且线程可以基于CONN_MAX_AGE的值打开/关闭连接).

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有