我正在创建一个使用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配置中的任何内容,以便处理程序正常超时吗?
答案 0 :(得分:2)
WSGI本身无法知道哪些层已经包含某个应用程序,Apache也不知道这一点。我建议让wsgiHandler
记录它的存在,以便您可以避免多次使用它。如果您无法更改现有代码,则可以使用自己的代码层的包装器(并直接或间接地使用环境来记录已经激活的代码)。