我正在部署我的第一个主要 Django 应用程序,并且需要一些缓存建议。
我的站点使用 Google 的分析 API 来显示站点周围的“热门内容”列表。这些 API 调用很慢(2-5 秒),所以我将它们的结果缓存了一个小时。然后我有一个 cron 作业,它每 15 分钟运行一次,并从 Google 重新请求数据。我意识到将它缓存一个小时并每 15 分钟更新一次似乎有点奇怪,我想这是一种愚蠢的故障保护。
我将网站的主要输出缓存了几个小时(它不会比这更频繁地更新)。当然,这意味着无论我多久调用一次 API,呈现“流行内容”的模板部分都不会在该时间段内更新。
我查看了 Django 的{% cache %}
模板标签并尝试将我的“流行内容”模板视图包装在一个最小缓存的包装器中(1 秒缓存时间,用于测试)。这可行(如果我随后手动调用 Google API 并重新加载我的页面,模板会更改),但我不确定它是否会按我的意图工作:基本上,我不想缓存整个页面几秒钟(而不是几个小时),但我希望它在我从 Google 获取新数据时更新。
任何人都可以在这里给我一个正确的方向吗?