变量的实例化次数将超过

2024-04-24 23:13:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用Python2.7+Apache+mod\wsgi开发一个小型web服务器时遇到了一些不寻常的情况。此服务器的主要用途是:

  1. 接收来自另一个服务器(服务器A)的常规请求,并将请求主体放入数据库中。在
  2. 使用一些后台线程解析DB中的请求体,并将解析后的信息发送到第三个服务器(serverb)。在

Apache被配置为Windows'winnt'MPM模式。代码调度.py,即入口点,如下所示:

from urlparse import parse_qs

pool = MyThreadClass() # A customized thread class to parse request body in DB
pool.start()

def application(environ, start_response):
    # Receiving regular request from server A and put request body into BD
    output = 'OK'
    start_response('200OK', [('Content-Type', 'text/plain')])
    return [output]

一开始,thread类是在服务器启动时创建的,它运行得很好。然而,几个小时后,我发现线程类(MyThreadClass)将再次实例化,这意味着此时将有两个MyThreadClass实例在后台运行。
我不知道在Apache启动时创建这样的实例是否正确。你有什么想法吗?在

[edit1]下面是apache中wsgi部分的配置:

^{pr2}$

[edit2]我按照@Graham的指示,将LogLevel设置为“info”。我想我已经找到原因了,但无法解释原因!
下面是访问日志和错误日志的日志。我的服务器正在监听8080。前三行错误.log在服务器启动时记录。然而,在2011年16:36:18的访问日志中,有一个来自124.237.78.181的调用请求http://g.ha99y.com/R.asp?P=123.157.218.85:8080。此时,在错误日志中,服务器加载调度程序.py再一次。我无法解释这个电话从哪里来,为什么会产生两个口译员我的主机:8080|'和'我的主机|'. 在

访问.log:

124.237.78.181 - - [20/Dec/2011:16:36:18 +0800] "GET http://g.ha99y.com/R.asp?P=123.157.218.85:8080 HTTP/1.1" 404 29

错误.log:

[Tue Dec 20 15:50:14 2011] [info] mod_wsgi (pid=1008): Create interpreter 'myhost.com:8080|'.
[Tue Dec 20 15:50:14 2011] [info] mod_wsgi (pid=1008): Adding 'E:/eclipse workspace/SubscriptionServer/src' to path.
[Tue Dec 20 15:50:14 2011] [info] [client 66.220.151.121] mod_wsgi (pid=1008, process='', application='myhost.com:8080|'): Loading WSGI script 'E:/eclipse workspace/SubscriptionServer/src/business/dispatcher.py'.
[Tue Dec 20 16:36:19 2011] [info] mod_wsgi (pid=1008): Create interpreter 'myhost.com|'.
[Tue Dec 20 16:36:19 2011] [info] mod_wsgi (pid=1008): Adding 'E:/eclipse workspace/SubscriptionServer/src' to path.
[Tue Dec 20 16:36:19 2011] [info] [client 124.237.78.181] mod_wsgi (pid=1008, process='', application='myhost.com|'): Loading WSGI script 'E:/eclipse workspace/SubscriptionServer/src/business/dispatcher.py'.

Tags: pyinfosrc服务器commodwsgi错误