3

Google App Engine のサービスURL Fetchがプロキシ キャッシュを使用しているかどうかはわかりませんが、これについては別のスレッドで説明されています。私の質問は: URL Fetch を使用して、GAE 上のアプリからアプリ (ハンドラー) にリクエストを送信した場合、結果はこのプロキシにキャッシュされますか?

ありがとう。

4

3 に答える 3

3

URLFetchに適切な ヘッダーを設定します。Cache-control

Python

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

行く

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)
于 2012-08-16T07:59:04.257 に答える
1

Cache-Controlこれは、ヘッダーを設定し、同じURL(つまり、fooからのurl foo)を要求していない限り機能します。

ただし、代わりにmemcacheを使用して目的のWebページの応答をキャッシュすることをお勧めします。これは、urlfetchを呼び出すよりもはるかに高速であり、より優れた制御と保証を提供します。

于 2012-08-16T08:09:13.100 に答える
0

ここではアプリケーションの設計について推測しているだけですが、UrlFetch APIを使用して、ビジネスロジッククラスを直接インスタンス化して使用するのが簡単なものを取得する必要があるのはなぜですか?

また、Urlfetchのドキュメントからこれに注意してください。

アプリがリクエストの無限の再帰を引き起こすのを防ぐために、リクエストハンドラーは独自のURLをフェッチすることを許可されていません。

本当にこれを行う必要がある場合はCache-Control、リクエストに適切なヘッダーを設定してください。

headers = {'Cache-Control':'no-cache,max-age=0', 'Pragma':'no-cache'}
result = urlfetch.fetch("http://foo/route", None, urlfetch.GET, headers)

この問題をご覧ください。

于 2012-08-16T08:30:13.763 に答える