【问题标题】:Is GAE caching data when doing a http request through GAE?通过 GAE 进行 http 请求时,GAE 是否缓存数据?
【发布时间】:2012-04-09 11:18:59
【问题描述】:

在 GAE 中接收 http 帖子时,我从另一台服务器下载 txt 文件,进行一些解析,然后返回信息。但是,当我更新此 txt 文件并尝试通过 GAE 访问它时,似乎存在延迟。这是一步一步的解释:

  1. 我在服务器 A 上更新了一个 txt 文件。

  2. 我通过访问服务器 A 上的 txt 文件来验证 txt 文件是否已更新。

  3. 我注意到通过 GAE(从服务器 A 获取 txt)访问同一个 txt 文件时有 5-10 分钟的延迟。

也许这不是 GAE 缓存的问题,但还有什么问题?

【问题讨论】:

  • 为什么不查看日志看GAE是否下载成功?您可以将文件的长度/哈希写入日志以检查是否收到了新内容。
  • 我不明白。我已经知道GAE每次都会成功下载文件。这只是错误的文件。 GAE 下载的文件比实际文件滞后 5-10 分钟。我通过浏览器下载文件并将其与通过 GAE 下载的文件进行比较来确认这一点。
  • @PeterKnego 建议您检查提供文件的机器上的日志,看看您是否收到来自 App Engine 的请求,它会告诉您它是否正在缓存。

标签: java http google-app-engine servlets


【解决方案1】:

尝试在您的 GAE URL 获取代码中设置 client cache control

URL urlObj = new URL(url); 
HttpURLConnection connection = (HttpURLConnection) 
urlObj.openConnection(); 
connection.addRequestProperty("Cache-Control", "no-cache,max-age=0"); 
connection.addRequestProperty("Pragma", "no-cache"); 

好像是work for some people

【讨论】:

    猜你喜欢
    • 2015-03-15
    • 2013-01-05
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    相关资源
    最近更新 更多