Django进程生命周期



当使用Django时,用于服务请求的Python进程存活多长时间?显然,给定的Python进程服务于整个请求,但是它能保证跨请求存活吗?

我问的原因是我在导入某些模块时执行了一些昂贵的计算,并且想知道模块导入的频率。

这根本不是Django的函数,而是用于为Django服务的任何系统的函数。通常情况下,这将是wsgi通过mod_wsgi或一个独立的服务器,如gunicorn,但它可能是完全不同的东西,如FastCGI或甚至普通的CGI。

关键是所有这些不同的系统都有它们自己的模型来决定进程的生命周期。除了基本的CGI之外,任何单独的进程在被回收之前肯定会处理几个请求,但是绝对不能保证有多少个请求——这个过程可能持续几天或几周,也可能只是几分钟。

需要注意的一点是,您几乎总是有几个进程并发运行,并且您绝对不能指望任何特定的请求都是由与前一个相同的进程服务的。这意味着,如果您希望在请求之间持久化任何特定于用户的数据,则需要将其存储在会话之类的地方。

最新更新