GAE Golang - Timeout für URL-Abruf?

Ich habe Probleme mit dem Timeout von urlfetch in Google App Engine in Go. Die App scheint nicht länger als 5 Sekunden warten zu wollen (sie ignoriert eine längere Zeitüberschreitung und läuft nach Ablauf ihrer eigenen Zeit ab).

Mein Code ist:

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
}

Egal was ich versuche einzustellenTimeoutDuration Nach ca. 5 Sekunden läuft die App ab. Wie kann man das verhindern? Habe ich einen Fehler in meinem Code gemacht?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage