2

我的 django 应用程序在 apache+wsgi 上运行。我的 django 应用程序中的一个模块需要通过 jpype 加载 Java 库,并且由于其应用程序性质,该 Java 库需要很长时间来初始化。

问题是,对于 django 在 apache+wsgi 设置中处理的每个 http 请求,都会重新加载这个 Java 库。但是,当我在开发 Web 服务器(python manager.py runserver 8000)中运行我的同一个应用程序时,这不会发生。在开发 Web 服务器中,它只加载 Java 库一次。

有什么方法可以更改 apache 或 mod_wsgi 配置或我的 django 应用程序,以便它不会为每个 http 请求重新加载我的 Java 库?

非常感谢。

安迪

4

1 回答 1

1

您可能只是感到困惑,实际上是在使用糟糕的 Apache/mod_wsgi 配置。具体来说,您很可能将嵌入式模式与 Apache prefork MPM 一起使用。这很糟糕,因为 Apache 将使用大量单线程进程,因此必须在所有进程中加载​​代码。这就是为什么您可能认为它发生在针对同一进程的每个请求上,而实际上,每个请求都针对不同的进程。

确保您使用的是 mod_wsgi 的守护程序模式,并且您的代码是线程安全的,因此使用单个多线程进程,它不应该有问题。

编辑您的问题并从 Apache 配置文件中添加您的 Apache/mod_wsgi 配置片段,并说明您正在使用的 Apache MPM。

于 2011-08-22T12:21:29.357 回答