私はフラスコのアプリケーションをいくつかの仕事を聞いている。プロセスはかなり長く(1分と言えば)、同時に2つの要求を処理することはできません。フラスコ、処理リクエスト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のロックはスレッド間でのみ動作し、プロセス間では動作しません。ロックできる共有リソースを導入する必要があります。これは、データベース、ファイル、または共有ロック(例えば、[名前付きセマフォ])(http://stackoverflow.com/q/2798727)です。 –