3 multithreading thread-safety web.py
我正在使用web.py框架.出于调试目的,我想强制所有请求由单个线程处理,或使用互斥锁模拟此类行为.我怎样才能做到这一点?
让我建议这样的东西,但它会锁定当前的应用程序堆栈而不是你的控制器方法.
import web
from threading import Lock
urls = ("/", "Index")
class Index:
def GET(self):
# This will be locked
return "hello world"
def mutex_processor():
mutex = Lock()
def processor_func(handle):
mutex.acquire()
try:
return handle()
finally:
mutex.release()
return processor_func
app = web.application(urls, globals())
app.add_processor(mutex_processor())
if __name__ == "__main__":
app.run()
Run Code Online (Sandbox Code Playgroud)
UPD:如果你需要锁定整个应用程序堆栈,那么你可能需要app.wsgifunc使用自己的WSGI中间件.想知道我对这个问题的回答.
| 归档时间: |
|
| 查看次数: |
1144 次 |
| 最近记录: |