2012-03-25 28 views
2

在GAE中收到http文章時,我從另一臺服務器上下載了一個txt文件,進行一些解析並返回信息。但是,當我更新這個txt文件並嘗試通過GAE訪問它時似乎有延遲。這裏有一個一步一步的解釋:GAE在通過GAE進行http請求時是否緩存數據?

  1. 更新我在服務器A的txt文件

  2. 我確認txt文件通過訪問服務器A上的txt文件更新

  3. 通過GAE(從服務器A獲取txt)訪問相同的txt文件時,我注意到5-10分鐘的延遲。

也許這個問題不是GAE緩存,但還有什麼可能呢?

+1

爲什麼不檢查日誌以查看GAE是否成功下載文件?您可以編寫文件的長度/散列以進行記錄,以檢查是否收到新內容。 – 2012-03-25 20:58:06

+0

我不明白。我已經知道GAE每次成功下載文件。這只是錯誤的文件。 GAE下載的文件滯後於實際文件的5-10分鐘。我通過瀏覽器下載文件並將其與通過GAE下載的文件進行比較來證實此點。 – Emiam 2012-03-25 21:02:34

+0

@PeterKnego建議您檢查提供該文件的計算機上的日誌,以查看是否從App Engine獲取了請求,該請求會告訴您它是否緩存。 – 2012-03-26 09:04:30

回答

4

嘗試在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