Flaskアプリケーション内でPythonで新しいスレッドを開始しようとしています。リクエストによってトリガーされるバックグラウンド作業を行っていますが、リクエストに応答するために作業が完了するのを待つ必要はありません。
このサブ脅威のフラスコリクエストを、入ってくるリクエストに設定することは可能ですか?理由は、DB(mongoDBの前にあるmongoengine)へのクエリのACLは、リクエストのユーザー(flaskのリクエストオブジェクトから取得)に依存して、オブジェクトにアクセスできるかどうかを確認します。サブスレッドでは使用できません。
どんな考えでも大歓迎です。
これが私が今それをどのように扱っているかの擬似コードですが、それは機能していません。
@app.route('/my_endpoint', methods=['POST'])
def my_endpoint_handler():
#do tracking in sub-thread so we don't hold up the page
def handle_sub_view(req):
from flask import request
request = req
# Do Expensive work
thread.start_new_thread(handle_sub_view, (request))
return "Thanks"