0
我正在GAE上開發一個應用程序,該應用程序提取網頁並搜索鏈接。
此頁面每天早上都會更新,因此每15分鐘每天早上執行一次cron作業幾個小時,以獲取當天的頁面。
每天更新下載頁面的問題每天更新
這裏的問題:如果在cron作業的第一執行應用程序找到舊的頁面(昨日的一個),它使獲取的那一個,但一個新的頁面可在同一網址。
似乎在某處使用緩存,但我無法禁用它。
應用程序使用下載頁面的代碼是簡單的Java I/O:
InputStream input = null;
ByteArrayOutputStream output = null;
HttpURLConnection conn = null;
URL url = new URL("http://www.page.url.net");
try {
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(0);
conn.setUseCaches(false);
int httpResponseCode = conn.getResponseCode();
if (httpResponseCode == HttpURLConnection.HTTP_OK) {
input = conn.getInputStream();
output = writeByteArrayOutputStreamFromInputStream(input);
} else {
throw new IOException("response code " + httpResponseCode);
}
} finally {
if (input != null) {
output.close();
conn.disconnect();
}
}
有什麼不對?
該技巧的作品。你能解釋我爲什麼嗎? – aleric
好吧,因爲緩存使用完整的uri作爲緩存資源的「關鍵」。所以如果你添加一個虛擬查詢參數,你實際上正在模擬所請求的資源總是不同的,所以緩存總是會丟失。 – previ