【问题标题】:Python web application: How to keep statePython Web 应用程序:如何保持状态
【发布时间】:2010-11-25 21:54:26
【问题描述】:

我使用 web.py 编写了一个与 WSGI 兼容的 Web 应用程序,它在启动期间将几十 MB 数据加载到内存中。

它与 web.py 集成服务器配合得很好。

但是,使用 Apache 2 + mod_wsgi,每个请求都会重新加载数据,实质​​上是重新启动程序。由于加载时间为几秒钟,这是无法忍受的。

它是 mod_wsgi 固有的还是可以配置的?我的替代方案是什么?

【问题讨论】:

  • 它是 mod_wsgi 固有的吗?不,它是 HTTP 固有的。您需要发布最少量的代码,以显示您认为“启动”如何工作。此外,您必须提供您的 mod_wsgi 配置,特别是显示您是否使用“守护程序”模式。
  • @S.Lott 感谢您提出守护程序模式——跨请求使用一个持久进程将服务器端数据保存在内存中。让它成为一个答案,我会接受。
  • 是的,很可能您使用的是嵌入式模式,更糟糕的是 prefork MPM,这意味着请求可能会发送到许多进程,而应用程序需要大量加载到新进程中。如果您没有正确配置,请参阅“blog.dscpl.com.au/2009/03/…”讨论有关 prefork 和嵌入式模式的问题。
  • 您实际上应该发布最少量的代码,以显示您认为“启动”如何工作。此外,您应该提供您的 mod_wsgi 配置。

标签: python apache mod-wsgi web.py


【解决方案1】:

“它是 mod_wsgi 固有的吗?”不,它是 HTTP 固有的

由于您没有发布您的 mod_wsgi 配置,因此无法说出您做错了什么。

我只能猜测你没有使用守护模式。

有关守护程序模式的更多信息,请参阅http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#Defining_Process_Groups

这可能不是最好的解决方案。使用适当的数据库可能会更好(远远好得多)。没有实际的代码示例和更多细节,这只是随机猜测。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    相关资源
    最近更新 更多