Pregunta

Digamos que tengo un script, que realiza un sondeo largo en el servidor para verificar si el usuario tiene mensajes nuevos. El lado del servidor sería algo así

while counter < 5
    if something_changed
        push_changes_to_client
        break
    else
        counter++
        sleep 5

Que comprueba la base de datos 5 veces y cada vez que no haya cambios, espera 5 segundos hasta la próxima verificación, lo que resulta en un tiempo de ejecución máximo de aproximadamente 25 segundos.

¿Qué sucede cuando el cliente se mueve de una página a otra realmente rápido? Supongo que el script del servidor sigue ejecutándose incluso después de que el cliente se mueva a una página diferente, donde envía otra solicitud de cambios.

¿Esto significa que cuando muchas personas se mueven rápidamente por el sitio (menos de la ejecución máxima de 25 segundos en cada página), entonces el servidor tiene que seguir ejecutando todos los scripts que intentan responder a la página que no ¿Ya no existe? ¿No causaría esto que el servidor use todo su grupo de subprocesos bastante rápido?

¿Fue útil?

Solución

En un modelo de subproceso por conexión con llamadas de suspensión síncrona, esto puede atar una gran cantidad de subprocesos. Sin embargo, si el " dormir " simplemente programa una devolución de llamada y regresa, se puede evitar el logjam del grupo de subprocesos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top