2011-10-29 8 views
2

Google App Engineを使用してHTTPリクエストを作成すると、応答の遅いWebサイトに移動します。私のコードは次のとおりです。Google App Engine低速ページへのHTTPリクエストの転送

func request(w http.ResponseWriter, r *http.Request) { 
    c:=appengine.NewContext(r) 
    client := urlfetch.Client(c) 
    resp, err := client.Get("http://www.example.com") 
    if err != nil { 
     log.Print("err %s", err.String()) 
     return 
    } 
    ...} 

私のウェブサイトを呼び出した後、私はこのようなエラーが出る:

​​

それにBIを見た後、私はのためのHTTPリクエストを待つことができますTransport classにいくつかの参照を見つけましたup to 60 secondsしかし、私はどのようにその仕事をするための説明や例を見つけることができません。

GAE GoでHTTP要求を作成するには、締め切りが5秒より長くなるようにしますか?

答えて

5

Tasks Queue APIを使用して、メインリクエストハンドラの外部でurlfetchを実行することをお勧めします。

urlfetch.Transportを構築する場合、あなたはこのようなデフォルトの期限上書きすることができるはずです。

t := urlfetch.Transport{Context:c, DeadlineSeconds: 5.0} 
client := http.Client{Transport: &t} 
0

リモートサイトは、DNS解決のために速度が遅くなることがあります。 IPアドレスを使用すると、ターゲットホストを解決してからhttp://a.b.c.dに接続することができます。

Goで、より長いタイムアウト値を定義できるかどうかわかりません。あなたができることは、返信を得る(または再試行回数が満了する)まで数回ポーリングすることです。

とにかく幸運。

関連する問題