当前位置:  开发笔记 > 编程语言 > 正文

Django缓存 - 可以先发制人吗?

如何解决《Django缓存-可以先发制人吗?》经验,为你挑选了1个好方法。

我有一个Django视图,它从外部网站接收部分数据,我使用urllib2/BeautifulSoup解析.

这个操作相当昂贵,所以我使用低级缓存API缓存它约5分钟.但是,在我转到外部站点解析新数据时,在缓存数据到期后访问站点的每个用户将收到几秒钟的显着延迟.

有没有办法懒洋洋地加载新数据,以便没有用户会得到那种延迟?或者这是不可避免的?

请注意,我在共享托管服务器上,因此请记住您的答案.

编辑:感谢您的帮助到目前为止.但是,我仍然不确定如何使用我将调用的python脚本完成此操作.我做的基本测试表明django缓存不是全局的.这意味着如果我从外部脚本调用它,它就不会在框架中看到缓存数据.建议?

另一个编辑:想到它,这可能是因为我仍在使用本地内存缓存.我怀疑如果我将缓存移动到memcached,DB,无论如何,这将被解决.



1> Mark..:

所以你想安排一些定期运行的东西?以一些CPU时间为代价,您可以使用这个简单的应用程序.

或者,如果您可以使用它,则每5分钟一次的cron作业是:

*/5 * * * * /path/to/project/refresh_cache.py

Web主机提供了不同的设置方法.对于cPanel,请使用Cron Manager.对于Google App Engine,请使用cron.yaml.对于所有这些,你需要设置环境中的refresh_cache.py第一个.

顺便说一下,响应用户的请求被认为是懒惰的缓存.这是先发制人的缓存.并且不要忘记缓存足够长的时间来重新创建页面!

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有