GAE Golang - urlfetch timeout?
Tengo problemas con los tiempos de espera de urlfetch en Google App Engine en Go. La aplicación no parece querer tomar un tiempo de espera más largo que unos 5 segundos (ignora un tiempo de espera más largo y se agota después de su propio tiempo).
Mi código es:
var TimeoutDuration time.Duration = time.Second*30
func Call(c appengine.Context, address string, allowInvalidServerCertificate bool, method string, id interface{}, params []interface{})(map[string]interface{}, error){
data, err := json.Marshal(map[string]interface{}{
"method": method,
"id": id,
"params": params,
})
if err != nil {
return nil, err
}
req, err:=http.NewRequest("POST", address, strings.NewReader(string(data)))
if err!=nil{
return nil, err
}
tr := &urlfetch.Transport{Context: c, Deadline: TimeoutDuration, AllowInvalidServerCertificate: allowInvalidServerCertificate}
resp, err:=tr.RoundTrip(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
result := make(map[string]interface{})
err = json.Unmarshal(body, &result)
if err != nil {
return nil, err
}
return result, nil
}
No importa lo que intente configurarTimeoutDuration
Para, la aplicación se apaga después de unos 5 segundos. ¿Cómo evitar que haga eso? ¿Cometí algún error en mi código?