¿Cómo puedo tener PHP 5.2 (que funciona como Apache mod_php) enviar una respuesta HTTP completa al cliente, y luego seguir la ejecución de las operaciones durante un minuto más?continuar la ejecución de PHP después de enviar la respuesta HTTP
La larga historia:
Tengo un script PHP que tiene que ejecutar algunas peticiones larga base de datos y enviar correo electrónico, que tiene de 45 a 60 segundos para correr. Este script es llamado por una aplicación que no tengo control. Necesito que la aplicación informe cualquier mensaje de error recibido del script PHP (la mayoría de los errores de parámetros no son válidos).
La aplicación tiene un retardo de tiempo de espera más corto de 45 segundos (no sé el valor exacto) y, por tanto, registra cada ejecución del script PHP como un error. Por lo tanto, necesito PHP para enviar la respuesta HTTP completa al cliente lo más rápido posible (idealmente, tan pronto como se hayan validado los parámetros de entrada), y luego ejecutar la base de datos y el procesamiento del correo electrónico.
estoy corriendo mod_php, por lo pcntl_fork
no está disponible. Podría solucionar este problema guardando los datos para procesarlos en la base de datos y ejecutar el proceso real desde cron
, pero estoy buscando una solución más corta.
Lo sentimos, pero esto parece ser un mal uso total del lenguaje PHP. –
No tanto como el mal uso del lenguaje PHP como el mal uso de un proceso de servidor web. Si ya no está involucrado HTTP/web, ningún servidor web debería estar ocupado con él. – Wrikken
@Wrikken ¡De acuerdo! :) –