我试图在 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"