2011-10-29 36 views
2

我想在轉到響應緩慢的網站時使用Google App Engine發出HTTP請求。我的代碼是: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 
    } 
    ...} 

叫我的網站後,我得到這樣一個錯誤:

​​

尋找雙成之後,我發現了一些參考Transport class允許等待HTTP請求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是否允許您定義更長的超時值 - 您可以做的是輪詢多次,直到您收到答覆(或已過期重試計數)爲止。無論如何,祝你好運。

相關問題