Compartir este chat
Cualquiera que tenga el link puede ver esta conversación.
Para el juego de Milka espero entre 2.500 y 3.000 jugadores conectados al mismo tiempo a un ranking en vivo, sobre todo en los picos del mediodía y de la pausa del café. No quiero que cada carga de página dispare una query que reordene todas las respuestas del formulario. ¿Cómo mantengo el ranking actualizado sin sobrecargar la base de datos?
Una pregunta antes de armar algo más complejo de lo necesario: ¿te sirve un ranking cacheado? Los datos quedarían unos segundos desactualizados, pero a cambio la base casi no se toca.
El cache me parece bien en principio, pero quiero que se sienta vivo: cuando un jugador responde, tiene que ver su posición moverse al instante, no quedarse esperando el próximo refresh.
Entonces combiná las dos cosas: un ranking cacheado para todos, y una actualización optimista para el jugador que acaba de responder.
- Refrescá el cache a intervalos fijos, no por request. Recalculá el ranking completo cada 30 segundos en segundo plano y serví ese resultado. Ninguna carga de página dispara un recálculo, nadie se encuentra con el cache vacío, y la base recibe una query cada 30 segundos en vez de miles.
- Simulá el cambio de posición del lado del jugador. Apenas un jugador envía su respuesta, actualizá su puntaje en cache y mostralo enseguida en su posición estimada: la respuesta se siente instantánea.
- Dejá que el ranking real tome el control. En el siguiente refresh, su posición real reemplaza la estimación, calculada con las últimas respuestas de todos los demás.
Cada jugador recibe una devolución inmediata y creíble, mientras el ranking real sigue siendo barato de calcular y consistente para los 3.000.
Buenísimo, ese es exactamente el efecto que buscaba.
Mandale un email a Eliott
Escribí tu mensaje acá: se abre directo en tu app de correo.
Currículum de Eliott Baylot
Documento PDF descargable.
CV de Eliott
¿Te presentás?
Es solo para que Eliott sepa con quién habla. Lo único obligatorio es tu nombre.
Claude es una IA y puede cometer comete errores. Chequeá las respuestas tres veces.