flask在使用多线程后,每个线程中不同路由之间如何共享参数?

之前是使用了一个全局变量来在不同路由之间共享参数,想请教下在开了多线程后,该如何做呢?

@app.route('/predict', methods=['POST'])
def model_predict():
        global res_dict
        res_dict = {}
           .....


@app.route('/hotel_summary')
def hotel_summary():
    hotel_name = res_dict["hotel_name"]

           .....

在用gunicorn开了多线程之后,当访问hotel_summary的路由时,直接报错“NameError: name 'res_dict' is not defined”
想请教下各位大佬该如何解决这个问题呢?万分感谢!!!

阅读 3.4k
1 个回答

你应该将这些数据存入DB或者Cache。Web服务最好做成无状态的,不然你后续可能又要问如何跨进程传递参数,如何跨机器传递参数……还有,将数据暂存在web服务进程内部,服务一重启就啥都没了……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题