我想加载一些数据并将其保存在应用程序范围内的内存中。基于stackoverflow中的this和其他帖子,我已将所需的代码段放在settings.py
,urls.py
,models.py
中。我还将print语句放在何时执行。我看到服务器日志中的所有print语句都包含每个请求。
以下是版本详细信息:
Linux 2.6.32-358.el6.x86_64
Apache/2.2.15 (Unix)
Django 1.4
Python 2.7.4
看起来django正在为每个请求重新加载。我还查看了this并向管理员确认MaxRequestsPerChild
不是1。
答案 0 :(得分:2)
如果您在mod_wsgi嵌入模式下运行,您将拥有多进程配置,因此可能需要一段时间来使用您的代码预热所有进程。此外,Apache将终止空闲进程,因此您将看到进程流失。所以你可能会看到的是结果。
在您的调试代码中添加打印出的进程ID以确认这一点。
最简单的方法是使用mod_wsgi守护进程模式,并将自己限制在少量固定数量的持久进程中。
另外去看看我的PyCon谈论这类东西: