ejemplos de las cosas que utilizan votación en los tiempos que corren:
- Email clientes sondear los mensajes nuevos (incluso con IMAP).
- Los lectores de RSS sondean los cambios en los feeds.
- Encuesta de motores de búsqueda para los cambios en las páginas que indexan.
- StackOverflow encuesta de usuarios para nuevas preguntas, pulsando 'actualizar' ;-)
- Los clientes de Bittorrent sondean el rastreador (y entre ellos, creo, con DHT) para ver los cambios en el enjambre.
- Spinlocks en sistemas multi-core puede ser la sincronización más eficiente entre núcleos, en casos donde el retraso es demasiado corto para que haya tiempo para programar otro hilo en este núcleo, antes que el otro núcleo haga lo que estamos esperando .
A veces simplemente no hay forma de obtener notificaciones asíncronas: por ejemplo, para reemplazar RSS con un sistema de inserción, el servidor debería conocer a todo el que lea el feed y tenga una forma de contactarlos. Esta es una lista de correo, precisamente una de las cosas que RSS fue diseñado para evitar. De ahí el hecho de que la mayoría de mis ejemplos son aplicaciones de red, donde es más probable que esto sea un problema.
Otras veces, las encuestas son lo suficientemente baratas para funcionar incluso cuando hay una notificación asíncrona.
Para un archivo local, la notificación de cambios es probablemente la mejor opción en principio. Por ejemplo, es posible que (quizás) evite que el disco gire hacia abajo si lo golpea constantemente, aunque de nuevo el sistema operativo podría almacenar en caché. Y si está sondeando cada segundo en un archivo que solo cambia una vez por hora, puede estar ocupando innecesariamente el 0.001% (o lo que sea) de la potencia de procesamiento de su máquina. Esto suena pequeño, pero ¿qué sucede cuando hay 100.000 archivos que necesita sondear?
En la práctica, sin embargo, es probable que la sobrecarga sea despreciable, sea lo que sea que haga, haciendo que sea difícil entusiasmarse con el cambio de código que actualmente funciona. Lo mejor es tener cuidado con los problemas específicos que el sondeo causa en el sistema que desea cambiar; si encuentra alguno, eleve los mismos en lugar de intentar hacer un argumento general contra todos los sondeos. Si no encuentra ninguno, no puede reparar lo que no está roto ...
FYI: Remoting y WCF do polling. –
Hasta cierto punto, sí, pero no de la misma manera en que algunos desarrolladores utilizan explícitamente el sondeo, es decir, sondear una base de datos cada minuto. – HAdes
Tengo una situación similar en la que estoy sondeando varias veces en varias ubicaciones de ftp para obtener un archivo actualizado, ¿cuál sería una forma óptima de manejar la situación? – Rachel