我正在使用flask来运行已经与持有用户ID和其他信息的会话相关的长进程。我尝试使用以下两种方法的新线程,但仍然出现错误'RuntimeError:在请求上下文之外工作。'
方法1
import threading
Thread(target=lambda: fn(**args)).start()
方法2
import thread
thread.start_new_thread(fn, (), args)
答案 0 :(得分:1)
要在线程内部使用会话,您必须使用copy_current_request_context从桥接器启动该线程
from flask import copy_current_request_context
@copy_current_request_context
def ctx_bridge():
fn(**args)
Thread(target=ctx_bridge).start()