检查特定的wsgi处理程序是否正在运行

时间:2010-08-01 00:36:10

标签: python apache gis mod-wsgi

我正在创建一个使用WSGI服务的映射应用程序,并且每个映射都需要不同的配置文件。目前,我通过以下方式启动服务:

import os, sys
tilecachepath = '/usr/local/lib/python2.6/dist-packages/TileCache-2.10-py2.6.egg/TileCache'
sys.path.append(tilecachepath)
from TileCache.Service import Service, wsgiHandler
from paste.request import parse_formvars

theService = {}
def wsgiApp (environ, start_response):
    global theService
    fields = parse_formvars(environ)
    cfgs  = fields['cfg']
    theService = Service.load(cfgs)
    return wsgiHandler(environ, start_response, theService)

application = wsgiApp

这显然是推出太多处理程序的方式!如何确定特定处理程序是否已在运行?我需要调整apache配置中的任何内容,以便处理程序正常超时吗?

1 个答案:

答案 0 :(得分:2)

WSGI本身无法知道哪些层已经包含某个应用程序,Apache也不知道这一点。我建议让wsgiHandler记录它的存在,以便您可以避免多次使用它。如果您无法更改现有代码,则可以使用自己的代码层的包装器(并直接或间接地使用环境来记录已经激活的代码)。