Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

158
Vistas
El proceso de trabajo que realiza llamadas SOAP genera infinitos descriptores de archivos CLOSE_WAIT

Estoy ejecutando un proceso de trabajador de cola de PHP que procesa trabajos que a su vez crean clientes SOAP y realizan solicitudes SOAP. Intentaré delinear el pseudocódigo lo más claramente posible.

Los trabajos y los parámetros se guardan en la base de datos y el trabajador los instancia. En forma simplificada, el trabajador se ve así:

 while(true) { $job = initiateFromDatabase($id); $job->handle() }

Para un determinado trabajo, se crea una instancia de SOAPClient y se realiza una llamada SOAP. Algunos resultados se guardan en una base de datos.

El problema es que el proceso alcanzará muy pronto el límite del descriptor de archivo abierto. Después de una inspección con lsof -a -p <worker_pid> , hay cientos de descriptores de TCP colgados en CLOSE_WAIT.

He realizado una investigación intensiva y mi conclusión es que no hay forma de cerrar explícitamente el zócalo de conexión SOAP (y subyacente).

La única forma de borrar los cientos de descriptores CLOSE_WAIT es eliminar el proceso de trabajo.

¿Cómo puedo asegurarme de que puedo ejecutar el trabajador durante períodos de tiempo más largos y hacer que los descriptores CLOSE_WAIT desaparezcan después de que la instancia de SOAPClient ya no se use?

Gracias por adelantado.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Resolví el problema configurando la opción keep_alive en false

 $client = new SoapClient($wsdl_url, array('keep_alive'=>false));
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda