3.1 KiB
3.1 KiB
TASK-087-configurable-historical-refresh-overlap
Goal
Hacer configurable la ventana de solape del refresh historico para permitir pasadas manuales de 24h, 48h o mas sobre todos los servidores sin recurrir a un bootstrap grande innecesario.
Context
La operativa actual del historico tiene dos limites practicos:
- el refresh incremental del historico base relee solo una ventana corta reciente
- el worker de player-events V2 tambien corta demasiado pronto para recuperar huecos recientes de forma controlada
Esto complica recuperar faltantes reales de los ultimos 1-3 dias, por ejemplo cuando faltan datos desde el lunes en uno o varios servidores.
La solucion inmediata no es RCON historico, sino exponer una ventana de solape configurable para:
historical_ingestion refreshplayer_event_worker refresh
Steps
- Revisar el flujo actual de cutoff y solape en:
backend/app/historical_ingestion.pybackend/app/historical_storage.pybackend/app/player_event_worker.pybackend/app/player_event_storage.pybackend/app/config.py
- Añadir configuracion explicita para el solape temporal del refresh, manteniendo compatibilidad hacia atras:
HLL_HISTORICAL_REFRESH_OVERLAP_HOURSHLL_PLAYER_EVENT_REFRESH_OVERLAP_HOURS
- Exponer tambien override por CLI en ambos comandos:
python -m app.historical_ingestion refresh --overlap-hours 48python -m app.player_event_worker refresh --overlap-hours 48
- Mantener el comportamiento por defecto actual o equivalente si el operador no pasa override.
- Asegurar que el refresh global sin
--serverrecorre los tres servidores historicos ya registrados. - Documentar en README el runbook operativo para:
- pasada manual de 48 horas
- pasada de validacion por un solo servidor
- recomposicion posterior de snapshots
- Mantener el trabajo limitado al backend y runbook operativo. No tocar UI.
Files to Read First
backend/README.mdbackend/app/historical_ingestion.pybackend/app/historical_storage.pybackend/app/player_event_worker.pybackend/app/player_event_storage.pybackend/app/config.py
Expected Files to Modify
backend/app/historical_ingestion.pybackend/app/historical_storage.pybackend/app/player_event_worker.pybackend/app/player_event_storage.pybackend/app/config.pybackend/README.md
Constraints
- No romper el refresh incremental actual.
- No cambiar el proveedor historico actual por defecto.
- No tocar frontend.
- No introducir dependencias nuevas.
- El override por CLI debe ser opcional.
- La ventana por defecto debe seguir siendo conservadora para no disparar coste innecesario.
Validation
- Existe soporte de configuracion/env para overlap del historico base.
- Existe soporte de configuracion/env para overlap de player-events.
- Existen flags CLI
--overlap-hoursen ambos comandos. - Una pasada manual de 48 horas queda documentada para todos los servidores.
- El repositorio queda consistente.
Change Budget
- Preferir menos de 7 archivos modificados o creados.
- Preferir menos de 260 lineas cambiadas.