8/20/2012

Timeout en SoapClient en PHP

Según la documentación oficial de PHP, al crear un objeto de la clase "SoapClient" se puede pasar como parámetro la configuración del "timeout", pero esto no siempre funciona:

$ws = new SoapClient($url_wsdl, array('connection_timeout' => $segundos));

La documentación dice al respecto:
La opción connection_timeout define el tiempo de espera en segundos para la conexión del servicio SOAP. Esta opción no define el tiempo de espera para servicios con respuestas lentas. Para limitar el tiempo de espera para finalizar las llamadas, está disponible la opción default_socket_timeout.
Si el servicio web es muy lento en responder se puede definir el tiempo de espera predeterminado (en segundos) para sockets basados en flujos. Agregamos la siguiente linea antes de crear el objeto:

ini_set('default_socket_timeout', $segundos);

Fuentes
http://www.php.net/manual/es/soapclient.soapclient.php
http://www.php.net/manual/es/filesystem.configuration.php#ini.default-socket-timeout
Publicar un comentario