Autor Tema: Timeout Guzzle  (Leído 491 veces)

0 Usuarios y 1 Visitante están viendo este tema.

mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Timeout Guzzle
« on: Diciembre 05, 2016, 05:34:10 pm »
Buenas, tenemos un problema cuando consumimos un web service desde Guaraní 3 y el mismo está caído. Lo qué sucede es un timeout y luego aparece el error correspondiente. El problema es que el timeout es el default de Guzzle y es de 120 segundos, los que nos parece muchísimo. Sería buenísimo poder configurarlo desde el cliente.ini, como se configuran otras cosas del cliente. Saludos!

richard

  • Moderador Global
  • *****
  • Mensajes: 3064
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Ricardo Dalinger
  • Sistema: SIU-Toba
Re:Timeout Guzzle
« Respuesta #1 on: Diciembre 07, 2016, 10:51:43 am »
Hola Pablo,

es una opcion interesante, probaron incluyendo el parametro  connect_timeout en el archivo cliente.ini en la parte de la conexion?... es un float segun la documentacion de guzzle. Lo unico malo es que aparentemente depende de que esten utilizando para conectarse, supongo que el limite de 120 viene dado por el stack TCP mas que por Guzzle directamente.

Cita
connect_timeout
---------------

:Summary: Float describing the number of seconds to wait while trying to connect
    to a server. Use ``0`` to wait indefinitely (the default behavior).
:Types: float
:Default: ``0``

.. note::

    This setting must be supported by the HTTP handler used to send a request.
    ``connect_timeout`` is currently only supported by the built-in cURL
    handler.

My bad... ahora que miro el codigo veo que  Toba esta pasando explicitamente ciertos parametros.. con lo cual lo que te decia arriba.. no hace nada... de otra opcion podria ser hacer lo siguiente (tambien de la doc de Guzzle):

Cita

// Timeout if the client fails to connect to the server in 3.14 seconds.
$client->get('/delay/5', ['connect_timeout' => 3.14]);

Fijate si con esa manera de llamar hay alguna diferencia.. al menos hasta que suba las modificaciones para incorporar los otros parametros.

Saludos
« Última Modificación: Diciembre 07, 2016, 10:56:28 am por richard »
Twitter es al incontinente verbal,  lo que los dulces al diabetico.

mpablounq

  • Jr. Member
  • **
  • Mensajes: 93
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de Quilmes
Re:Timeout Guzzle
« Respuesta #2 on: Diciembre 07, 2016, 11:00:37 am »
Por lo que estuve viendo, lo que ponemos en el cliente.ini no va directo al constructor del Guzzle. En la clase toba_servicio_web_cliente_rest en la función guzzle(), se definen varios setDefaultOption en base a las opciones que vienen en el ini. Nosotros no podemos personalizar esta parte porque está en el core de Toba, pero lo que haría sería agregar otro seteo de DefaultOption con el timeout. Saludos!