我正在使用烧瓶来运行已经与保存用户 ID 和其他信息的会话相关的长进程。 我尝试使用以下两种方法使用新线程,但仍然收到错误"运行时错误:在请求上下文之外工作"。
方法 1
import threading
Thread(target=lambda: fn(**args)).start()
方法 2
import thread
thread.start_new_thread(fn, (), args)
要在线程中使用会话,您必须使用 copy_current_request_context 从 bridge 启动该线程
from flask import copy_current_request_context
@copy_current_request_context
def ctx_bridge():
fn(**args)
Thread(target=ctx_bridge).start()