2017-01-05 25 views
0

並行処理に気を付ける必要があるかどうかはわかりませんが、ドキュメントは見つかりませんでした。Django:settings.pyへの同時アクセス

私はsettings.pyのようないくつかのデータをipアドレスのように保存しています。各ユーザーは1人ずつ、または1人を返すことができます。だから、私は操作を読み書きしているので、同じ瞬間に1人のユーザーしかファイルを読み込まないようにしたい。

どうすれば対応できますか?

はい、私はsettings.pyにデータを保存したいと思います。モジュールdjango-concurrencyも見つかりました。しかし、私はドキュメントで何も見つけることができませんでした。

答えて

1

e4c5として言及されているように、従来のsettings.pyはかなり論理的です。設定のロードメカニズムはかなりわかりにくいので、私は個人的に、理解しづらいものとはやり取りしないものから離れたいと思っています:

あなたは絶対に並行性に注意する必要があります。アプリケーションをどのように実行していますか? dev envではシンプルなサーバーを使用しているので、通常は同時に数件のリクエストしか処理できません(デベロッパはシングルスレッド化されています)

アプリケーションを実行している場合は、フォークサーバー、プロセス間でデータをどのように共有しますか? 1つのプロセスは他のプロセスも表示されません。settings.py私はそれがスレッディングサーバーのように見えるかどうかは確信していませんが、少なくとも、要求がどのように処理され、どのようにメモリが共有されるかの詳細を理解するためには、Webサーバーのソースコード監査が必要です。

DBを使用する方がずっと簡単です(memcache/redis/etcなどのオプションでメモリ内のdbを使用できるはずです)。 DBは並行処理のサポートを提供し、より簡単に推論することができ、データの同時アクセスのためのプリミティブを提供します。また、シングルスレッドのRedisの場合、共有IPアドレスへの同時アクセスについても心配する必要はありません。

1

はい、settings.pyにデータを保存します。

あなたは間違いなくそれをしたくありません。 settings.pyファイルはdjangoとそれと一緒に使用できるプラグイン可能なアプリケーションを設定しています。データをダンプするための場所として使用することは意図されていません。データはデータベースに格納されます。

また、settings.pyファイルは通常1回だけ読み込まれることを忘れないでください。

+0

私もデータベースを使用しますが、この種のデータをテキストファイルに保存します。 – ikreb

+0

その後、テキストファイルを使用してください! :) – e4c5

+0

したがって、余分なテキストファイルをsettings.pyとして使用する方が良いでしょうか?どうして? – ikreb

関連する問題