gpt4 book ai didi

python - Django 缓存 - 可以抢先完成吗?

转载 作者:太空狗 更新时间:2023-10-30 00:25:47 24 4
gpt4 key购买 nike

我有一个 Django View ,它从外部网站接收部分数据,我使用 urllib2/BeautifulSoup 对其进行解析。

此操作相当昂贵,因此我使用低级缓存 API 将其缓存约 5 分钟。但是,当我去外部站点解析新数据时,每个在缓存数据过期后访问站点的用户都会收到几秒钟的显着延迟。

有没有办法延迟加载新数据,这样用户就不会遇到这种延迟?或者这是不可避免的?

请注意,我在共享托管服务器上,所以请在回答时记住这一点。

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

另一个编辑: 仔细想想,这可能是因为我仍在使用本地内存缓存。我怀疑如果我将缓存移动到 memcached、DB 等等,这将得到解决。

最佳答案

所以你想安排一些东西定期运行?以一些 CPU 时间为代价,您可以使用 this simple app .

或者,如果可以使用它,cron job每 5 分钟是:

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

Web 主机提供了不同的设置方式。对于 cPanel,使用 Cron 管理器。对于 Google App Engine,使用 cron.yaml .对于所有这些,您需要 set up the environment首先在 refresh_cache.py 中。

顺便说一句,响应用户的请求被认为是惰性缓存。这是抢先缓存。并且不要忘记缓存足够长的时间以便重新创建页面!

关于python - Django 缓存 - 可以抢先完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/797773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com