如何测试Django的缓存?
-
20-08-2019 - |
题
有没有一种方法是确定一个页面从缓存中来生产服务器和开发服务器上呢?
在解决方案的不该涉及缓存中间件,因为不是每个项目使用它们。虽然该解决方案本身可能的是强>一个中间件。
只需检查该数据是陈旧的是不是一个非常安全的测试方法IMO。
解决方案
我们做了很多组件的缓存,而不是所有的人都在同一时间更新。因此,我们在一个普遍包括背景处理器设置的主机和时间戳值。在每个模板片段的顶部,我们扦:
<!-- component_name {{host}} {{timestamp}} -->
在COMPONENT_NAME只是可以很容易地做一个查看源文件并搜索字符串。
所有的我们的看法是对象的详细信息页面定义的上下文变量“page_object”,我们有此在base.html文件模板主的顶部:
<!-- {{page_object.class_id}} @ {{timestamp}} -->
类标识码()是由我们的所有主内容类别的用于一个超类的方法。它仅仅是:
def class_id(self):
"%s.%s.%s" % (self.__class__._meta.app_label,
self.__class__.__name__, self.id)
如果您加载一个页面,任何时间戳比几秒钟的时候,这是一个相当不错的选择,该组件被缓存。
其他提示
彼得Rowells的建议很有效,但你并不需要一个自定义模板,背景处理器 对于时间戳。你可以简单地使用模板标签:
<!-- {% now "jS F Y H:i" %} -->
莫克视图,击中页面,并查看是否模拟被调用。如果它不是,被使用的高速缓存,而不是
您使用缓存的原因是为了提高性能。通过运行针对您的服务器负载测试来测试性能。如果服务器的性能满足你的需要,那么你就准备好了!
不隶属于 StackOverflow