私は web.py フレームワークを使用しています。デバッグの目的で、すべてのリクエストを強制的に 1 つのスレッドで処理するか、ミューテックスを使用してそのような動作をシミュレートしたいと考えています。どうやってやるの?
1286 次
2 に答える
5
このようなことを提案させてください、しかしそれはあなたのコントローラーメソッド上で現在のアプリケーションスタックだけをロックします。
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()
UPD:アプリケーションスタック全体をロックする必要がある場合は、おそらくapp.wsgifunc
独自のWSGIミドルウェアでラップする必要があります。アイデアを得るには、この質問に対する私の答えを確認してください。
于 2012-11-07T18:19:54.100 に答える