17

有没有办法确保页面来自生产服务器和开发服务器上的缓存?

该解决方案不应涉及缓存中间件,因为并非每个项目都使用它们。虽然解决方案本身可能一个中间件。

仅检查数据是否过时并不是 IMO 一种非常安全的测试方法。

4

4 回答 4

20

我们做了很多组件缓存,但并非所有组件都同时更新。所以我们在一个普遍包含的上下文处理器中设置主机和时间戳值。在每个模板片段的顶部,我们坚持:

<!-- component_name {{host}} {{timestamp}} -->

component_name 只是使查看源代码和搜索该字符串变得容易。

我们所有的对象详细页面视图都定义了一个上下文变量“page_object”,我们在 base.html 模板主文件的顶部有这个:

<!-- {{page_object.class_id}} @ {{timestamp}} -->

class_id() 是我们所有主要内容类都使用的超类的方法。它只是:

def class_id(self):
    "%s.%s.%s" % (self.__class__._meta.app_label,
                    self.__class__.__name__, self.id)

如果您加载一个页面并且任何时间戳都超过几秒,那么很有可能该组件已被缓存。

于 2008-12-08T02:33:16.777 回答
16

Peter Rowells 的建议效果很好,但您不需要用于时间戳的自定义模板上下文处理器。您可以简单地使用模板标签:

 <!-- {% now "jS F Y H:i" %} --> 
于 2011-04-06T08:32:14.690 回答
8

模拟视图,点击页面,看看是否调用了模拟。如果不是,则使用缓存。

于 2008-12-07T21:06:49.150 回答
2

使用缓存的原因是为了提高性能。通过对您的服务器运行负载测试来测试性能。如果服务器的性能符合您的需求,那么一切就绪!

于 2008-12-07T22:12:02.183 回答