我已经使用 web.py 实现了简单的网络服务器。通过多线程模块,我可以在不同的端口上运行多个网络服务器实例。现在所有的实例都在永远监听 http 请求。我想踩一个特定的线程。有没有办法阻止实例监听(或完全杀死特定线程。)
我想在请求到来时立即更新日志文件.我有一个类变量event_logging_enabled,它初始化为TRUE.在POST()函数中,我检查event_logging_enabled的值.
现在,在运行时,我将此标志的值修改为FALSE以用于后续请求.但它仍然是真的.
在调试期间,我发现当收到请求时,会创建一个新对象来处理每个请求,因此,将选择初始化值ieTRUE.
对于同一类的getlogEnabled()等其他函数,情况并非如此.你能建议任何解决方法吗?
import web
import threading
class webServer(threading.Thread):
port = "1234"
event_logging_enabled = "True"
def getlogEnabled(self):
print "Stub getlogEnabled(): ",self.event_logging_enabled
def __init__(self):
threading.Thread.__init__(self)
""" Logging """
print "Init------------------------",self.event_logging_enabled
self.event_logging_filename = "ueLogs.log"
def run(self):
urls = (
'/','webServer',
)
app = web.application(urls,globals())
sys.argv.append(webServer.port)
app.run()
def POST(self):
print "in POST"
print "Stub POST(): Logging Enabled : ",self.event_logging_enabled
Run Code Online (Sandbox Code Playgroud)