如何分发Django持久连接(CONN_MAX_AGE)?

时间:2016-02-22 10:31:16

标签: python django oracle connection-pooling

据我所知,Django与DB的持久连接数量与CONN_MAX_AGE代表的数量相同。

如果是这样,将连接分发到应用程序的规则是什么?

例如。

案例1.无论多进程,多线程环境如何,每次应用程序请求时都会分发连接(例如,在异步环境中,每个请求都可以建立连接)

案例2.连接分发到每个线程(线程级别)

案例3.连接分发到每个进程(进程级别)

有没有办法监控这种行为?,

在DB中是否有任何预先设置可以在Django中更新数据库连接池。

1 个答案:

答案 0 :(得分:2)

next()

Connection是一个本地线程。

请注意,从数据库的角度来看,几乎不建议在多个线程之间共享连接。

当然,进程之间不会共享非持久性数据。

对于连接池,您需要在django和DB之间使用一些代理。但是如果你使用持久连接,你可以在wsgi中实现与多个线程类似的效果,这将保持与数据库的多个连接。