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

241
Views
Proceso de ejecución larga de PHP: responda a la persona que llama, pero continúe con el procesamiento

Hola todos,

Implementé una API REST en PHP para devolver datos a otra aplicación a pedido. Algunas solicitudes pueden demorar 30 segundos, algunas demoran 2 minutos y otras pueden demorar hasta una hora. Si la respuesta tarda más de 2 minutos, debo responder a la aplicación que llama que devolveré la llamada a la aplicación que llama, una vez que se complete la extracción de datos.

La solicitud de datos puede ser pequeña o muy grande, dependiendo de lo que requiera la aplicación que llama.

Busqué en Google y encontré la implementación de pThreads, pero dice que NO debe usarse en una aplicación alojada en un servidor web. Amp se parece a lo que necesito, pero necesito la respuesta http para terminar con la aplicación que llama, mientras que el SQL continúa generándose, es decir, la solicitud http para continuar.

La otra solución, que quiero evitar, es marcar ciertas solicitudes como de ejecución prolongada, ya que algunas solicitudes pueden demorar 30 segundos en ciertos momentos del día, pero exceder los 2 minutos en otros momentos del día.

Los requisitos son los siguientes:

  • Acepte la solicitud y ejecute el SQL para extraer los datos
  • Si la solicitud SQL aún se está ejecutando después de 2 minutos, responda con una respuesta JSON que diga que usaré el mecanismo de devolución de llamada. Pero la solicitud SQL debe continuar y los datos JSON deben escribirse en un archivo plano para la devolución de llamada.
  • Si la solicitud de SQL se completa en menos de 2 minutos, responda con la respuesta JSON con los datos

El problema es que una vez que se ejecuta la solicitud SQL, el programa se bloquea hasta que se completa. Necesito que la solicitud SQL se ejecute por separado y controle cuánto tiempo lleva.

¿Alguien puede proporcionar algún código de muestra y un marco/biblioteca que pueda ayudar con lo anterior?

Agradecería cualquier ayuda con lo anterior.

over 4 years ago · Santiago Trujillo
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!