2

マルチプロセッシングで実行される Django サイトがあります。また、Python-memchached を有効にして Memcahced を使用しています。各プロセスには独自のメモリがあることを理解しています。

データベース テーブル T とその関連フィールド全体をメモリに効率的にロードし、このデータ全体を別の形式に再作成してオブジェクト F に保持するカスタム キャッシュがあります。ユーザーが T テーブルを追加/削除/更新しようとするたびにDjango を介して、サイトは最初にこれらの変更を F に適用します。変更がいくつかの基準を満たした場合、Django オブジェクトとデータベースに保存します。変更が基準を満たさない場合、Django オブジェクトやデータベースに触れることなく F をロールバックします。

元のテーブルのカスタム マネージャーに F を配置しました。

目標: 1 つの F で全員にサービスを提供する

問題: 各プロセスには独自の F があります。それらは互いに一貫していません。F の初期化は重いので、Django アプリの初期化時に 1 回だけ実行したいと考えています。後で F を変更するのは安上がりです。

質問: F はどこに置くべきですか? Memcahced には、データベースからのデータのコピーが 1 つありますか? その場合、F (python オブジェクト) を memcached に入れて、そこで直接処理できますか? F が一度だけ初期化され、すべてのプロセスがそれにアクセスできるように定義するにはどうすればよいですか?

役立つ場合は、詳細を以下に示します。 F は NetworkX グラフです。ジャンゴ: 1.4.3 ガンコーン: 0.17.0

どうもありがとう!

時代

4

0 に答える 0