我不知道,如果谷歌App Engine的服務URL Fetch使用代理緩存,這是討論in other thread?我的問題是:如果我使用URL從我的應用程序發送請求到我的應用程序(對某個處理程序),請將結果緩存在此代理中?網址提取是否使用GAE的代理緩存?
謝謝。
我不知道,如果谷歌App Engine的服務URL Fetch使用代理緩存,這是討論in other thread?我的問題是:如果我使用URL從我的應用程序發送請求到我的應用程序(對某個處理程序),請將結果緩存在此代理中?網址提取是否使用GAE的代理緩存?
謝謝。
這隻要你設定的Cache-Control
頭,你是不是要求工作同一個你(即foo的url foo)。
但是我建議使用memcache來緩存所需網頁的響應。這將比調用urlfetch快得多,並會給你更好的控制和保證。
設置一個appropriateCache-control
header on URLFetch:
的Python
result = urlfetch.fetch(url, headers = {'Cache-Control' : 'max-age=0, must-revalidate'})
GO
client := urlfetch.Client(c)
req, err := http.NewRequest("GET", check.Url, nil)
req.Header.Add("Cache-Control", `max-age=0, must-revalidate`)
resp, err := client.Do(req)
我只是猜測你的應用程序的設計在這裏,但爲什麼你需要使用UrlFetch API來檢索一些你可以很容易實例化和直接使用你的業務邏輯類?
還應注意這個來自Urlfetch documentation:
爲了防止應用程序從引起請求的無限遞歸,一個 請求處理程序不允許獲取自己的網址。
如果你真的不得不這樣做,然後設置你的要求正確Cache-Control
頭:
headers = {'Cache-Control':'no-cache,max-age=0', 'Pragma':'no-cache'}
result = urlfetch.fetch("http://foo/route", None, urlfetch.GET, headers)
看一看這個Issue。