Django 缓存、天气站点每 5 分钟自动刷新缓存

Django cache, weather site auto-refresh cache every 5 minutes

我有一个 django 天气网站,用于一个具有视图装饰器缓存功能的小型本地社区。目前缓存设置为每 5 分钟过期一次,此时下一个点击视图的人将被迫等待大约 10 秒,以便视图从多个 web-services.

中提取数据
@cache_page(60 * 5) # cache for 5 minutes  
def weather(request):  
    # lot of calls to external sites 

我想为 运行 视图设置一个 cron 作业以刷新缓存,一旦视图 运行 它将替换旧缓存中的数据。理想情况下,我希望在加载新视图期间点击视图的用户只需获取旧的缓存数据,这样他们就不会看到额外的加载时间。

我敢肯定有一种优雅的方法可以用 django cache framework 来做到这一点。

您可以尝试使用类似于 johnny-cache 的查询集缓存,并在新数据进入时使查询集过期,而不是每 n 分钟一次。