Google App Engine会缓存外部请求吗?

3 投票
1 回答
1019 浏览
提问于 2025-04-15 22:39

我有一个非常简单的应用程序,运行在appengine上,每五分钟请求一次网页,并提取特定的数据。

一切都运行得很好,除了我从外部请求(使用urllib2)得到的响应,有时候并不能反映网页的最新变化。有时候需要几分钟才能获取到最新内容,有时候甚至要等一个多小时。

难道appengine在这里有一个透明的缓存机制吗?还是说我遗漏了什么?我查看了请求页面的缓存头,发现没有发送Expires、LastModified或ETags这些头信息。

更新:有时候,它会在多次请求中获取到网页的新版本,但之后又会随机得到一个过时的旧版本。

1 个回答

8

看起来这是一个App Engine团队已经注意到的问题。解决这个问题的一个建议方法是设置Cache-Control头,里面加上最大缓存时间(以秒为单位):

result = urlfetch.fetch(url, headers = {'Cache-Control' : 'max-age=240'})

这样做应该能帮到你。

撰写回答