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 次调用,该方法以相同的顺序返回完全相同的对象。这些对象要么是一个字符列表(通过另一个进程存储在不同的键下),要么是无。在前 10 次命中后,该方法开始返回正确的对象。

如果我使用以下代码实例化缓存对象

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

一切都按预期运行。正因为如此,我希望这个问题出现在 Django 中的某个地方,而不是 moxi-client 或 couchbase 的下游。

我会实施这个解决方案,但是我有一个巨大的 Django 项目,并确保每个文件都包含它会很痛苦。任何有关解决方案的提示将不胜感激。

我正在使用 Django 1.3。

4

0 回答 0