【发布时间】:2014-09-19 23:17:27
【问题描述】:
我有一个使用 apache2 和 mod_python 的服务器,它似乎在一段时间后重置了全局变量。在这种情况发生之前,服务器和全局变量的所有功能都会完全按照我的预期进行处理。
为了排除某些运行时错误的可能性(尽管我确实进行了调试并且没有看到任何错误),我制作了这个简化的脚本来演示如何重置全局变量。它只是保存一个全局计数器,并在每次访问服务器时递增:
from mod_python import apache
counter = 0
def handler(req):
global counter
counter += 1
req.content_type = 'text/plain'
req.write('counter: '+str(counter))
return apache.OK
我可以继续刷新页面并观察计数器按预期上升。但是,在某些时候,计数器会跳回 1。
我尝试简单地按住 F5 键以快速刷新页面,看看在我不断访问它时它是否仍会重置,我注意到了别的东西。起初它仍然会下降到 1 几次,但最终它会下降到其他数字。例如,我最多刷新了大约 200 次,但它刚刚下降到大约 100 次,有时甚至会向上跳回 200 次。
似乎有多个用于启动服务器脚本的虚拟 shell,而服务器只是在它们之间随机切换或启动新的。我怎样才能防止这种情况发生?
【问题讨论】:
标签: python apache2 mod-python