我有燒瓶應用程序,它傾聽一些工作要做。這個過程很長(讓我們說1分鐘),我不想同時處理兩個請求。燒瓶,處理請求1 by 1
如果一旦我收到請求,我會很好,我可以關閉正在收聽的端口燒瓶,並在完成後再次打開。或者我可以設置一個信號燈,但我不知道如何同時運行燒瓶。
有什麼建議嗎?
from flask import Flask, request
app = Flask(__name__)
@app.route("/",methods=['GET'])
def say_hi():
return "get not allowed"
@app.route("/",methods=['POST'])
def main_process():
# heavy process here to run alone
return "Done"
if __name__ == "__main__":
app.run(debug=True,host='0.0.0.0')
你是如何運行燒瓶刨?直接通過燒瓶還是將它作爲WSGI模塊運行? –
我正在使用wsgi模塊 – mosh442
在這種情況下,它可能會更復雜一點。一個WSGI服務器(取決於配置)可以並行產生多個進程,但是Python的鎖只能跨線程工作,而不能跨越進程。您需要引入可以鎖定的共享資源。這可能是數據庫,文件或共享鎖,例如[named semaphore](http://stackoverflow.com/q/2798727)。 –