2016-11-28 8 views
0

Linuxマシンでは、django 1.10.2とpython 3.5.2を使用しています。クライアントは、Djangoのために接続したときにdjangoでスレッドセーフなメソッドを作成するには

  1. が出現しているもの:

    私が関係している2つの質問がありますか?すべてのクライアントのための新しいスレッドか、すべてのクライアントのための新しいプロセスですか?

  2. 私はdjangoで一度に1つずつクライアントにアクセスする必要があるメソッドを持つ必要があります。基本的には、ロック機構を備えたスレッドセーフな方法でなければなりません。私はこれをdjangoでどのように達成しますか?

ありがとうございます!

+0

あなたの方法は何をするのか、そしてどのようなスレッドセーフに関するあなたの懸念はありますか? – knbk

答えて

0
  1. これは、Djangoアプリケーションの展開方法によって異なります。 GunicornまたはUwsgiを参照してください。通常、プロセスのプールがあります。

  2. おそらくdbトランザクションがお手伝いします。

+0

良い点、私はuwsgiを使用しています。 Dbトランザクションは私にとっては機能しません。 他のアイデアはどのように安全な方法をスレッド化するのですか? – Lukas

+0

Redisの使用を検討してください。 https://redis.io/topics/distlock –

0

多分あなたは試みることができる:

from threading import Lock 

使用し、その後広い範囲で

lock = Lock() 

をロックを作成します。

with lock: 
    //do stuff 
関連する問題