Django 视图函数 类变量多线程共享 问题

在编写Django的视图函数时候,我们往往喜欢将业务逻辑拆分到mixin中,让结构更加清晰易懂,但是有个地方需要注意,在mixin的类中声明类变量,要注意多线程下变量共享问题:使用uwsgi运行django应用,每个请求会开一个新的线程来处理,如果直接在mixin里面定义类变量,线程间则可以共享此类变量,会造成隐含bug!
代码这么写,如图
在这里插入图片描述
请求结果,如图
在这里插入图片描述

每次请求都会在temp_dict变量追加想的key value 而不会重新声明temp_dict,导致多次请求,temp_dict里面的变量越来越多
可能是初始化的时候类直接加载好了,而后每次请求只执行需要的方法才导致此问题,想要避免的话,就在方法内部声明变量吧不要放在类变量里面应该就可以啦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章