Django Process Lifetime

时间:2014-08-18 19:02:57

标签: python django lifecycle

使用Django时,用于处理请求的Python进程有多长时间保持活动状态?显然,给定的Python进程为整个请求提供服务,但它是否能保证跨越多个请求?

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

1 个答案:

答案 0 :(得分:4)

这根本不是Django的功能,而是用于为Django提供服务的任何系统。通常会通过类似mod_wsgi或类似gunicorn的独立服务器来使用wsgi,但它可能会像FastCGI甚至是简单的CGI那样完全不同。

关键是所有这些不同的系统都有自己的模型来确定流程的生命周期。除了基本的CGI之外,任何单个流程在回收之前肯定会提供多个请求,但绝对没有一般保证的数量 - 流程可能持续数天或数周,或者只需几分钟。

有一点需要注意的是,您几乎总是会同时运行多个进程,并且您绝对不能指望与前一个进程相同的任何特定请求。这意味着如果您希望在请求之间保留任何特定于用户的数据,则需要将其存储在会话之类的某个位置。