Django 視圖函數 類變量多線程共享 問題

在編寫Django的視圖函數時候,我們往往喜歡將業務邏輯拆分到mixin中,讓結構更加清晰易懂,但是有個地方需要注意,在mixin的類中聲明類變量,要注意多線程下變量共享問題:使用uwsgi運行django應用,每個請求會開一個新的線程來處理,如果直接在mixin裏面定義類變量,線程間則可以共享此類變量,會造成隱含bug!
代碼這麼寫,如圖
在這裏插入圖片描述
請求結果,如圖
在這裏插入圖片描述

每次請求都會在temp_dict變量追加想的key value 而不會重新聲明temp_dict,導致多次請求,temp_dict裏面的變量越來越多
可能是初始化的時候類直接加載好了,而後每次請求只執行需要的方法才導致此問題,想要避免的話,就在方法內部聲明變量吧不要放在類變量裏面應該就可以啦

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