Keep workers online during long-running downloads

This commit is contained in:
erik
2026-09-04 14:53:37 -05:00
parent d9e2012e22
commit 632599b201
57 changed files with 8847 additions and 21 deletions
@@ -0,0 +1,18 @@
# ADR 0001: Mantener el heartbeat durante trabajos de descarga
- Estado: Aceptada
- Fecha: 2026-09-04
## Contexto
El bot de descarga ejecuta el procesamiento del Excel de forma bloqueante. Durante ese tiempo el ciclo principal no enviaba heartbeats y el servidor declaraba al worker desconectado después de 45 segundos, reclamando un trabajo que todavía seguía activo.
## Decisión
El worker enviará un heartbeat cada 10 segundos en un hilo auxiliar durante toda la ejecución del trabajo. Las llamadas de heartbeat, eventos y consulta de cancelación tendrán un timeout de 5 segundos y sus fallos temporales no detendrán la descarga local. El servidor esperará 180 segundos antes de reclamar un trabajo por desconexión.
## Consecuencias
- Los trabajos largos no serán reclamados solamente porque el ciclo principal esté ocupado.
- Una interrupción breve del gateway no congelará el navegador durante un minuto por cada llamada de control.
- Si un worker realmente se apaga, la recuperación automática puede tardar hasta tres minutos.