有人可以 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 请求中保持连接打开吗?
UPDATE:
更仔细地查看文档,我看到了这一点:
开发服务器为每个请求创建一个新线程
句柄,消除持久连接的影响。不启用
他们在开发过程中。
啊,这似乎意味着连接“属于”线程。 (线程可以根据 CONN_MAX_AGE 的值打开/关闭连接)。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)