inmobiliaria-analytics/docs/01-fase-alcance-inicial/IAI-007-webscraper/historias-usuario/US-SCR-004.md
rckrdmrd f570727617 feat: Documentation and orchestration updates
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:35:40 -06:00

102 lines
2.0 KiB
Markdown

---
id: "US-SCR-004"
title: "Programacion de jobs de actualizacion"
type: "User Story"
epic: "IAI-007"
status: "Draft"
story_points: 5
priority: "Media"
project: "inmobiliaria-analytics"
created_date: "2026-01-04"
updated_date: "2026-01-04"
---
# US-SCR-004: Programacion de jobs de actualizacion
---
## User Story
**Como** administrador del sistema
**Quiero** programar jobs de scraping automaticos
**Para** mantener los datos actualizados sin intervencion manual
---
## Descripcion
Implementar sistema de scheduling que permita programar full scans semanales, actualizaciones incrementales diarias, y verificacion de propiedades activas periodicamente.
---
## Criterios de Aceptacion
- [ ] Jobs se programan con expresiones cron
- [ ] Full scan ejecuta semanalmente (domingos 2am)
- [ ] Incremental ejecuta diariamente (4am)
- [ ] Jobs se pueden ejecutar bajo demanda via API
- [ ] Jobs fallidos se reintentan con backoff
- [ ] Progreso visible en dashboard
---
## Schedules Predefinidos
```yaml
schedules:
full_scan_inmuebles24:
cron: "0 2 * * 0"
tipo: full_scan
config:
source: inmuebles24
max_pages: 100
full_scan_vivanuncios:
cron: "0 3 * * 0"
tipo: full_scan
config:
source: vivanuncios
max_pages: 100
incremental_all:
cron: "0 4 * * *"
tipo: incremental
config:
sources: [inmuebles24, vivanuncios]
max_pages: 20
refresh_active:
cron: "0 */6 * * *"
tipo: refresh
config:
mark_inactive_after_days: 7
```
---
## Tareas Tecnicas
| # | Tarea | Estimacion |
|---|-------|------------|
| 1 | Configurar Bull Queue | 2h |
| 2 | Implementar job types | 4h |
| 3 | Scheduler con cron | 3h |
| 4 | Retry logic con backoff | 2h |
| 5 | API endpoints | 3h |
**Total estimado:** 14h (~2 dias)
---
## Definition of Done
- [ ] Jobs se ejecutan segun schedule
- [ ] Reintentos funcionan correctamente
- [ ] API permite trigger manual
- [ ] Logs detallados disponibles
---
**Asignado a:** -
**Sprint:** -