Continuar la ejecución de PHP después de enviar la respuesta HTTP

¿Cómo puedo hacer que PHP 5.2 (que se ejecuta como apache mod_php) envíe una respuesta HTTP completa al cliente y luego siga ejecutando operaciones durante un minuto más?

La larga historia:

Tengo un script PHP que tiene que ejecutar algunas solicitudes de base de datos largas y enviar correos electrónicos, que demoran entre 45 y 60 segundos en ejecutarse. Este script es llamado por una aplicación sobre la que no tengo control. Necesito que la aplicación informe cualquier mensaje de error recibido del script PHP (en su mayoría errores de parámetros no válidos).

La aplicación tiene un retraso de tiempo de espera inferior a 45 segundos (no sé el valor exacto) y, por lo tanto, registra cada ejecución del script PHP como un error. Por lo tanto, necesito que PHP envíe 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 ejecute el procesamiento de la base de datos y el correo electrónico.

Estoy ejecutando mod_php, así quepcntl_fork no está disponible. Podría solucionar este problema guardando los datos que se procesarán en la base de datos y ejecutar el proceso real desdecron, pero estoy buscando una solución más corta.

Respuestas a la pregunta(12)

Su respuesta a la pregunta