1

私はdjangoのキャッシュバックエンドを使用して、memcachedプロトコルに従うmoxi-clientと対話しています。

私のテストコードはこのように構成されています。

from django.core.cache import cache
key = "test_object_key"
max_errors = 15
errors = 0
total_runs = 0
unexpected_objects_returned = []
while(errors<max_errors):
    total_runs += 1
    obj = cache.get(key)
    if(type(obj)  == ExpectedObject):
        continue
    else:
        unexpected_objects_returned.append(obj)
        errors += 1

初めて正しい値が返されるとき。次の10回の呼び出しでは、メソッドはまったく同じオブジェクトを同じ順序で返します。オブジェクトは、charのリスト(別のプロセスを介して別のキーで保存される)またはNoneのいずれかです。最初の10ヒットの後、メソッドは正しいオブジェクトを返し始めます。

次のコードを使用してキャッシュオブジェクトをインスタンス化した場合

from django.core.cache import get_cache
cache = get_cache('default')

すべてが期待どおりに実行されます。このため、この問題はDjangoのどこかにあり、moxi-clientまたはcouchbaseのどちらの下流でも発生しないと予想しています。

私はこのソリューションを実装しますが、巨大なDjangoプロジェクトがあり、すべてのファイルにそれが含まれていることを確認するのは面倒です。解決策へのヒントをいただければ幸いです。

私はDjango1.3を使用しています。

4

0 に答える 0