我在Linux機器上使用django 1.10.2和python 3.5.2。如何在django中創建線程安全的方法
我有2個被相關的問題:
是什麼催生當客戶端連接到Django的?它是每個客戶端的新線程還是每個客戶端的新進程?
我需要在django中有一個只能由客戶端訪問的方法。基本上這必須是一個線程安全的方法,可能有一個鎖機制。我如何在django中完成此操作。
在此先感謝!
我在Linux機器上使用django 1.10.2和python 3.5.2。如何在django中創建線程安全的方法
我有2個被相關的問題:
是什麼催生當客戶端連接到Django的?它是每個客戶端的新線程還是每個客戶端的新進程?
我需要在django中有一個只能由客戶端訪問的方法。基本上這必須是一個線程安全的方法,可能有一個鎖機制。我如何在django中完成此操作。
在此先感謝!
這取決於您如何部署Django應用程序。見Gunicorn或Uwsgi。通常,有一個過程池。
也許db事務可以幫助你。
好點,我用uwsgi。 Db交易對我不起作用。 任何其他的想法如何線程安全的方法? – Lukas
考慮使用Redis。 https://redis.io/topics/distlock –
也許你可以試試:
from threading import Lock
創建鎖定了範圍廣泛
lock = Lock()
然後使用方法:
with lock:
//do stuff
什麼是你的方法做,什麼你對線程安全感到擔憂嗎? – knbk