烧瓶启动新线程 - 运行时错误:在请求上下文之外工作



我正在使用烧瓶来运行已经与保存用户 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()

最新更新