Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
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.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

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

 $client = new SoapClient($wsdl_url, array('keep_alive'=>false));
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!