CONN_MAX_AGE如何在Django中工作

时间:2017-01-23 22:07:29

标签: django-orm django-postgresql

有人可以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的值打开/关闭连接。)

0 个答案:

没有答案