Apache でホストされているアプリケーションの 1 つを使用して、johnny キャッシュを構成しました。デフォルトポートの同じマシンで実行されるバックエンドとしてmemcachedで構成されています。
複数の Web クライアントが Apache を通過する場合、キャッシュは正常に機能します。それらはすべてキャッシュから読み取られ、更新によりキャッシュが無効になります。ただし、python プログラム/スクリプトが django (johnny 構成を持つ同じ settings.py) を使用して DB から読み取る場合、キャッシュから読み取られないため、そのプログラムによって行われた更新はキャッシュに影響しません。これにより、キャッシュから古いデータを読み取る Web クライアントが残ります。
これに関連するジョニーキャッシュのドキュメントには何も見つかりませんでした。この状況について何か考えはありますか?
johnny cache 0.3.3、django 1.2.5、python 2.7 を使用しています。
編集: コメントの質問の1つに答えるために、スクリプトのDBからこのように読み取りました-
>>> cmp = MyModelClass.objects.get(id=1)
>>> cmp.cust_field_2
u'aaaa'
update sqlステートメントを発行してテーブルを直接更新し、キャッシュから読み取っているため、更新された値がWebクライアントに反映されていないため、キャッシュから読み取られないことがわかっています。MyModelClass.objects.get(id=1) を使用してオブジェクトを再フェッチすると、スクリプトは更新された値を表示します。
ありがとう、