Espero poder explicar esto lo suficientemente bien. Estoy trabajando en crear un PHP library to handle ajax requests through PHP de una manera orientada a objetos. Actualmente estoy considerando una buena forma de implementar una solución de votación larga, pero tengo curiosidad por algo.Long Polling con PHP en Apache
Apache no se encarga de mantener las conexiones múltiples abiertas muy bien. El modelo de hilo por solicitud hace que Apache sea altamente ineficiente para largas encuestas. El uso de servidores como nginx y lighttpd manejan estos hilos mucho mejor, así que en la biblioteca, planeo implementar diferentes funciones optimizadas para los servidores específicos disponibles desde una sola llamada a función. En el caso de Apache, que tiene una enorme cuota de mercado para las aplicaciones PHP, necesito una mejor solución.
¿Hay alguna manera de colocar una solicitud entrante en espera/pausa y continuar procesando otras solicitudes hasta que esté listo para reactivarla?
No estoy seguro si eso tiene sentido o si estoy en el camino correcto. ¿Cuál es una posible solución que SO recomienda para largas encuestas en PHP en un servidor Apache?
¿por qué pausar el procesamiento en el servidor? ¿Eso no haría que tu usuario esperara mucho? – Joseph
Con Apache, utiliza un modelo de subproceso por solicitud para que una solicitud de página inicial en una aplicación utilice un subproceso, y luego la solicitud ajax (llamada una vez que se carga el DOM) use un subproceso diferente. El problema es intentar tráfico de alto volumen generará miles de subprocesos y, finalmente, deshabilitará el servidor. –
Tuvimos un problema similar, después de activar ajax/PHP la carga de la página larga de sondeo comenzó aleatoriamente (cca cada 4-5 carga) tomando demasiado tiempo ... por ahora y solo para avisos lo resolví por NOT sleep() en PHP de cualquier manera, y movió la funcionalidad timewait a javascript, por lo que ahora javascript está solicitando una nueva ejecución PHP, por ejemplo 10s pero la carga de la página parece estar bien ahora. –