Soy responsable de la parte backend de una API, escrita en PHP, que es utilizada principalmente por un cliente Flash. Lo que sucede en este momento es: el cliente Flash realiza una llamada, el servidor carga los datos necesarios, procesa y postprocesa, registra y almacena en caché y luego devuelve el resultado al cliente.PHP + gzip: cerrar la conexión y continuar ejecutando
Lo que me gustaría que suceda es devolver los datos al cliente lo antes posible, cerrar la conexión y luego hacer todo lo que el cliente no tiene que preocuparse. Esto podría hacer que la API parezca mucho más receptiva. Siguiendo las sugerencias aquí:
http://php.net/manual/en/features.connection-handling.php
realmente funciona, excepto que tengo que desactivar la codificación gzip con el fin de hacer que funcione, que no es muy práctico. Usamos mod_deflate en apache, por lo que una solución que funcione con eso sería ideal, pero también consideraría un método diferente para descomprimir nuestro contenido si fuera necesario.
Parece parece que parece que hay una manera de que Apache sepa "le he enviado todos los datos que voy a enviar", pero parece que no puedo encontrar algo así.
Para aquellos que se preguntan, sí puedo lavar los resultados anticipadamente, pero el cliente Flash no los procesará hasta que se cierre la conexión.
Gracias. Soy consciente de algunas soluciones para este problema, algunas más elegantes que otras, pero realmente me gustaría encontrar la manera de decirle a Apache que deje de esperar la salida y cierre la conexión. :) –