🥇 Clientes HTTP, Client Timeout.

Supongamos que realizamos una consulta a un servicio web como en los ejemplos anteriores. Sin embargo el tiempo de respuesta es largo debido a que el servidor tiene demasiado tráfico, o la velocidad de la red no es la mejor.

En estos casos requerimos especificar cual es el tiempo máximo que deseamos permitir para que se completen estas operaciones antes de considerar dicha operación fallida, a este valor le llamamos Timeout.

En el ejemplo anterior podemos completar la configuración del client de la siguiente forma.

client := &http.Client{
    Timeout: 5 * time.Millisecond,
}

Hemos cambiado el tiempo máximo de ejecución a solo 5 milisegundos, por lo que el tiempo de espera es muy bajo. Si ejecutamos el programa obtendremos.

$ go main.go
####/##/## ##:##:## Post https://httpbin.org/post: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
exit status 1

Ahora si cambiamos los valores por algo mas razonable como 5 segundos y volvemos a ejecutar, volvemos a obtener una respuesta satisfactoria.

client := &http.Client{
    Timeout: 5 * time.Second,
}
Clientes HTTP, Uso del http.Client. JSON, Introducción.
comments powered by Disqus