Django 根据每个请求重新加载

标签 django mod-wsgi

我想加载一些数据并将其保留在应用程序范围内的内存中。基于this以及 stackoverflow 中的其他帖子,我已将所需的代码片段放入 settings.pyurls.pymodels.py 中。我还放置了打印语句来查看它何时执行。我在服务器日志中看到每个请求的所有打印语句。

以下是版本详细信息:

  1. Linux 2.6.32-358.el6.x86_64
  2. Apache/2.2.15 (Unix)
  3. Django 1.4
  4. Python 2.7.4

看起来 django 正在为每个请求重新加载。我还调查了this并与管理员确认 MaxRequestsPerChild 不是 1。

最佳答案

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

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

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

也可以观看我的 PyCon 谈论此类内容:

关于Django 根据每个请求重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18055678/

相关文章:

mod-wsgi - Python 中子解释器 API 的用途是什么?

python - 我在哪里可以获得 Django 应用程序的 wiki 格式化小部件?

javascript - 与 .innerHTML 一起传递值

python - Flask 应用程序日志文件不是在 Apache 部署下编写的

Python Flask mod-wsgi 自定义 header 不在请求中

python - 如何在Apache2.2上使用mod_wsgi正确部署flask应用

python - 为 Django 配置 mod_wsgi?

django - ubuntu18.04中无法通过url连接mongodb

python - 在 Django 中存储旧密码哈希值,因此用户不能重复使用相同的密码

python - 在 Django View 中获取上传的文件扩展名?