Django重新加载每个请求

时间:2013-08-05 10:15:29

标签: django mod-wsgi

我想加载一些数据并将其保存在应用程序范围内的内存中。基于stackoverflow中的this和其他帖子,我已将所需的代码段放在settings.pyurls.pymodels.py中。我还将print语句放在何时执行。我看到服务器日志中的所有print语句都包含每个请求。

以下是版本详细信息:

  1. Linux 2.6.32-358.el6.x86_64
  2. Apache/2.2.15 (Unix)
  3. Django 1.4
  4. Python 2.7.4
  5. 看起来django正在为每个请求重新加载。我还查看了this并向管理员确认MaxRequestsPerChild不是1。

1 个答案:

答案 0 :(得分:2)

如果您在mod_wsgi嵌入模式下运行,您将拥有多进程配置,因此可能需要一段时间来使用您的代码预热所有进程。此外,Apache将终止空闲进程,因此您将看到进程流失。所以你可能会看到的是结果。

在您的调试代码中添加打印出的进程ID以确认这一点。

最简单的方法是使用mod_wsgi守护进程模式,并将自己限制在少量固定数量的持久进程中。

另外去看看我的PyCon谈论这类东西: