Programador de Procesos (Scheduler)
Scheduler (Programador de Procesos) es el sistema de programación temporal de Heptora que permite ejecutar automatizaciones en el momento exacto que necesitas. Ya sea una vez, de forma recurrente o siguiendo patrones complejos, el scheduler garantiza que tus procesos se ejecuten cuando y como lo necesites.
Automatización Temporal Inteligente
Sección titulada «Automatización Temporal Inteligente»El scheduler de Heptora elimina la necesidad de intervención manual para iniciar procesos, permitiendo que tus automatizaciones funcionen de forma completamente autónoma según el horario que definas.
Ventajas del Scheduler
Sección titulada «Ventajas del Scheduler»- ⏰ Programación Flexible: Cron, calendario, intervalos, recurrencias personalizadas
- 📅 Calendario Inteligente: Considera festivos, fines de semana y días laborables
- 🔄 Reintentos Automáticos: Políticas configurables de retry en caso de fallos
- ⚡ Gestión de Prioridades: Control de orden de ejecución cuando hay múltiples tareas
- 🚦 Control de Concurrencia: Limita ejecuciones simultáneas para evitar sobrecargas
- 🕐 Ventanas de Ejecución: Define horarios permitidos y prohibidos
- 📊 Monitorización: Historial completo de ejecuciones y resultados
Opciones de Programación
Sección titulada «Opciones de Programación»Expresiones Cron
Sección titulada «Expresiones Cron»Para usuarios avanzados, las expresiones cron ofrecen máxima flexibilidad:
Sintaxis Básica
Sección titulada «Sintaxis Básica»* * * * * *│ │ │ │ │ ││ │ │ │ │ └─ Día de la semana (0-7, donde 0 y 7 son domingo)│ │ │ │ └─── Mes (1-12)│ │ │ └───── Día del mes (1-31)│ │ └─────── Hora (0-23)│ └───────── Minuto (0-59)└─────────── Segundo (0-59, opcional)Ejemplos Comunes
Sección titulada «Ejemplos Comunes»# Cada día a las 9:00 AM0 9 * * *
# Cada lunes a las 8:30 AM30 8 * * 1
# Cada hora, en el minuto 1515 * * * *
# Cada 15 minutos*/15 * * * *
# De lunes a viernes a las 6:00 PM0 18 * * 1-5
# Primer día de cada mes a las 00:000 0 1 * *
# Cada 30 minutos, de 9 AM a 5 PM, de lunes a viernes*/30 9-17 * * 1-5Caracteres Especiales
Sección titulada «Caracteres Especiales»*: Cualquier valor (todos),: Lista de valores (1,3,5)-: Rango de valores (1-5)/: Incremento (*/15 = cada 15)?: Sin valor específico (útil para día del mes/semana)
Ejemplos Avanzados
Sección titulada «Ejemplos Avanzados»# Cada 2 horas, de 8 AM a 6 PM, lunes a viernes0 8-18/2 * * 1-5
# A las 00:00 y 12:00, todos los días0 0,12 * * *
# Cada 10 minutos, en horas impares*/10 1,3,5,7,9,11,13,15,17,19,21,23 * * *
# Último día de cada mes a las 23:5959 23 28-31 * * [ $(date -d tomorrow +\%d) -eq 1 ]
# Cuartos de hora (00, 15, 30, 45) de 9 AM a 5 PM0,15,30,45 9-17 * * *Programación por Calendario
Sección titulada «Programación por Calendario»Interfaz visual para programar sin necesidad de conocer sintaxis cron:
Fecha y Hora Específica
Sección titulada «Fecha y Hora Específica»Ejecuta un proceso en un momento exacto:
Tipo: Fecha específicaFecha: 2024-12-25Hora: 08:00Zona horaria: Europe/MadridRepetir: NoCasos de uso:
- Envío de informe trimestral específico
- Inicio de campaña en fecha concreta
- Tarea de mantenimiento programada
- Cierre de periodo contable
Fecha y Hora Relativa
Sección titulada «Fecha y Hora Relativa»Programa en relación al momento actual:
Tipo: RelativoDesde: AhoraDentro de: 2 horasExacto: SíCasos de uso:
- Recordatorio tras crear una tarea
- Seguimiento automático después de X días
- Escalado de tickets no resueltos
Recurrencia
Sección titulada «Recurrencia»Patrones repetitivos para tareas periódicas:
Recurrencia Diaria
Sección titulada «Recurrencia Diaria»Tipo: DiariaCada: 1 díaHora: 09:00Zona horaria: Europe/MadridFin: Nunca (o especificar fecha fin)Variaciones:
- Cada X días: Cada 2 días, cada 3 días, etc.
- Días laborables: Solo de lunes a viernes
- Días específicos: Solo lunes, miércoles y viernes
Casos de uso:
- Backup diario de datos
- Sincronización con sistemas externos
- Generación de informes diarios
- Monitorización de sistemas
Recurrencia Semanal
Sección titulada «Recurrencia Semanal»Tipo: SemanalCada: 1 semanaDías: Lunes, Miércoles, ViernesHora: 14:30Zona horaria: Europe/MadridConfiguraciones:
- Cada X semanas: Cada 2 semanas, quincenal, mensual
- Días múltiples: Cualquier combinación de días
- Diferentes horarios: Un horario por día
Casos de uso:
- Informes semanales
- Limpieza de datos semanal
- Reuniones automatizadas
- Procesamiento de nóminas
Recurrencia Mensual
Sección titulada «Recurrencia Mensual»Tipo: MensualCada: 1 mesDía: 1 (primer día del mes)Hora: 00:00Zona horaria: Europe/MadridOpciones:
- Día fijo: Día 1, 15, último día, etc.
- Día relativo: Primer lunes, último viernes, etc.
- Múltiples días: Día 1 y 15 del mes
Casos de uso:
- Facturación mensual
- Cierre contable
- Informes mensuales
- Conciliaciones bancarias
Recurrencia Anual
Sección titulada «Recurrencia Anual»Tipo: AnualCada: 1 añoMes: EneroDía: 1Hora: 00:00Zona horaria: Europe/MadridCasos de uso:
- Renovación de licencias
- Informes anuales
- Auditorías programadas
- Mantenimiento anual
Intervalos
Sección titulada «Intervalos»Ejecución basada en tiempo transcurrido:
Cada X Minutos
Sección titulada «Cada X Minutos»Tipo: IntervaloCada: 30 minutosInicio: 09:00Fin: 18:00Días: Lunes a ViernesConfiguraciones comunes:
- Cada 5 minutos: Monitorización intensiva
- Cada 15 minutos: Sincronización frecuente
- Cada 30 minutos: Procesamiento regular
- Cada hora: Actualizaciones periódicas
Casos de uso:
- Monitorización de sistemas
- Sincronización de datos en tiempo casi real
- Procesamiento de colas
- Health checks
Cada X Horas
Sección titulada «Cada X Horas»Tipo: IntervaloCada: 2 horasInicio: 08:00Fin: 20:00Casos de uso:
- Backup incremental
- Actualización de caches
- Sincronización periódica
- Informes intermedios
Días Laborables
Sección titulada «Días Laborables»Sistema inteligente que considera el calendario laboral:
Configuración de Calendario Laboral
Sección titulada «Configuración de Calendario Laboral»Calendario: España (Madrid)Incluye: - Festivos nacionales - Festivos autonómicos (Madrid) - Festivos locales (Madrid ciudad)Considera: - Sábados y domingos como no laborables - Festivos trasladados - Puentes (opcional)Días Laborables Personalizados
Sección titulada «Días Laborables Personalizados»Puedes definir tu propio calendario:
Calendario: PersonalizadoDías laborables: Lunes a ViernesFestivos personalizados: - 2024-01-01: Año Nuevo - 2024-12-25: Navidad - 2024-12-26: San Esteban (opcional)Estrategias de Festivos
Sección titulada «Estrategias de Festivos»Qué hacer cuando la ejecución cae en festivo:
Omitir:
Si festivo: OmitirDescripción: No se ejecuta ese díaDía laborable anterior:
Si festivo: Día anteriorDescripción: Ejecuta el último día laborable previoDía laborable posterior:
Si festivo: Día siguienteDescripción: Ejecuta el siguiente día laborableEjecutar de todas formas:
Si festivo: EjecutarDescripción: Se ejecuta incluso en festivoCasos de Uso de Días Laborables
Sección titulada «Casos de Uso de Días Laborables»Procesamiento de nóminas:
Programación: Último día laborable del mesHora: 00:00Si festivo: Día anteriorCalendario: EspañaConciliación bancaria:
Programación: Días laborablesHora: 08:00Si festivo: Día siguienteCalendario: España + festivos bancariosEnvío de informes:
Programación: Lunes laborablesHora: 09:00Si festivo: Día siguiente laborableCalendario: Empresa (personalizado)Configuración Avanzada
Sección titulada «Configuración Avanzada»Ventanas de Ejecución
Sección titulada «Ventanas de Ejecución»Define cuándo puede y no puede ejecutarse un proceso:
Horarios Permitidos
Sección titulada «Horarios Permitidos»Ventanas permitidas: - Lunes a Viernes: 08:00 - 20:00 - Sábados: 09:00 - 14:00 - Domingos: No permitidoComportamiento:
- Si la ejecución programada cae fuera de ventana, se retrasa al inicio de la siguiente ventana
- Útil para procesos que consumen muchos recursos
- Evita ejecuciones en horarios de mantenimiento
Horarios Prohibidos
Sección titulada «Horarios Prohibidos»Ventanas prohibidas: - Mantenimiento: Domingos 02:00 - 06:00 - Backup: Todos los días 23:00 - 00:30 - Peak hours: Lunes a Viernes 12:00 - 14:00Casos de uso:
- Evitar ejecuciones durante backup de base de datos
- No ejecutar en horario pico de sistemas
- Respetar ventanas de mantenimiento
Ejemplo Completo
Sección titulada «Ejemplo Completo»Proceso: Sincronización ERPProgramación: Cada 30 minutosVentanas permitidas: - Lunes a Viernes: 08:00 - 20:00Ventanas prohibidas: - Lunes a Viernes: 12:00 - 14:00 (horario pico) - Todos los días: 23:00 - 00:30 (backup)Si fuera de ventana: Esperar siguiente ventana disponibleMáximo de Ejecuciones Concurrentes
Sección titulada «Máximo de Ejecuciones Concurrentes»Controla cuántas instancias del proceso pueden ejecutarse simultáneamente:
Límite de Concurrencia
Sección titulada «Límite de Concurrencia»Concurrencia máxima: 1Comportamiento si límite alcanzado: EncolarCola máxima: 10Opciones de comportamiento:
Encolar:
Comportamiento: EncolarDescripción: Espera a que termine la ejecución actualCola máxima: 10 (máximo de ejecuciones en espera)Omitir:
Comportamiento: OmitirDescripción: Salta esta ejecución si hay otra en cursoLog: Registra ejecución omitidaTerminar anterior:
Comportamiento: Terminar anteriorDescripción: Cancela la ejecución en curso y empieza nuevaAdvertencia: Puede dejar procesos a mediasEjecutar en paralelo:
Comportamiento: Ejecutar paraleloMáximo: 5 instancias simultáneasDescripción: Permite múltiples ejecuciones hasta el límiteEjemplos por Tipo de Proceso
Sección titulada «Ejemplos por Tipo de Proceso»Proceso de lectura sin escritura:
Tipo: Consulta de datosConcurrencia: 10Justificación: No hay conflictos, solo lecturaProceso con escritura en BD:
Tipo: Actualización de registrosConcurrencia: 1Comportamiento: EncolarJustificación: Evitar condiciones de carreraProceso de generación de informes:
Tipo: Generación PDFConcurrencia: 3Justificación: Balance entre rendimiento y recursosProceso de envío de emails:
Tipo: Envío masivoConcurrencia: 5Comportamiento: EncolarCola máxima: 20Justificación: Respetar límites de proveedor de emailPolíticas de Reintentos
Sección titulada «Políticas de Reintentos»Configura qué hacer cuando una ejecución falla:
Reintento Básico
Sección titulada «Reintento Básico»Reintentos: 3Intervalo: 5 minutosBackoff: NingunoComportamiento:
- Primera ejecución falla
- Espera 5 minutos → Reintento 1
- Falla → Espera 5 minutos → Reintento 2
- Falla → Espera 5 minutos → Reintento 3
- Falla → Marca como fallido definitivamente
Backoff Exponencial
Sección titulada «Backoff Exponencial»Reintentos: 5Intervalo inicial: 1 minutoBackoff: ExponencialFactor: 2Máximo: 30 minutosComportamiento:
- Falla → Espera 1 min → Reintento 1
- Falla → Espera 2 min → Reintento 2
- Falla → Espera 4 min → Reintento 3
- Falla → Espera 8 min → Reintento 4
- Falla → Espera 16 min → Reintento 5
- Falla → Marca como fallido
Ventajas:
- Da tiempo al sistema externo para recuperarse
- No sobrecarga inmediatamente tras un fallo
- Más eficiente para problemas temporales
Backoff Lineal
Sección titulada «Backoff Lineal»Reintentos: 4Intervalo inicial: 5 minutosBackoff: LinealIncremento: 5 minutosComportamiento:
- Falla → Espera 5 min → Reintento 1
- Falla → Espera 10 min → Reintento 2
- Falla → Espera 15 min → Reintento 3
- Falla → Espera 20 min → Reintento 4
Reintentos Condicionales
Sección titulada «Reintentos Condicionales»Solo reintentar ciertos tipos de errores:
Reintentos: 3Intervalo: 5 minutosReintentar solo si: - Timeout - Error de conexión - Error temporal del servidor (503)No reintentar si: - Error de autenticación (401) - Recurso no encontrado (404) - Error de validación de datosNotificaciones en Fallos
Sección titulada «Notificaciones en Fallos»Reintentos: 3Notificar: Primer fallo: No Fallo tras reintentos: Sí Destinatarios: - admin@empresa.com - equipo-operaciones@empresa.com Incluir: - Log de error - Datos de entrada - Timestamp de fallosSistema de Prioridades
Sección titulada «Sistema de Prioridades»Controla el orden de ejecución cuando hay múltiples tareas en cola:
Niveles de Prioridad
Sección titulada «Niveles de Prioridad»Prioridades disponibles: - Crítica (5): Ejecución inmediata - Alta (4): Preferencia sobre normales - Normal (3): Prioridad estándar - Baja (2): Cuando hay recursos disponibles - Muy baja (1): Solo en momentos de baja cargaConfiguración de Prioridad
Sección titulada «Configuración de Prioridad»Proceso: Facturación mensualProgramación: Último día del mes, 00:00Prioridad: Crítica (5)Justificación: Proceso financiero críticoProceso: Limpieza de logs antiguosProgramación: Domingos, 03:00Prioridad: Muy baja (1)Justificación: Tarea de mantenimiento no urgentePrioridad Dinámica
Sección titulada «Prioridad Dinámica»La prioridad puede ajustarse según condiciones:
Proceso: Procesamiento de pedidosPrioridad base: Normal (3)Ajustes: - Si pedido urgente: Alta (4) - Si pedido VIP: Crítica (5) - Si pedido estándar: Normal (3) - Si reposición stock: Baja (2)Aging (Envejecimiento de Prioridad)
Sección titulada «Aging (Envejecimiento de Prioridad)»Aumenta prioridad si una tarea lleva mucho tiempo esperando:
Aging habilitado: SíIncremento: +1 cada 30 minutosMáximo: Crítica (5)Ejemplo:
- T+0min: Tarea entra con prioridad Baja (2)
- T+30min: Si aún espera, sube a Normal (3)
- T+60min: Si aún espera, sube a Alta (4)
- T+90min: Si aún espera, sube a Crítica (5)
Esto evita que tareas de baja prioridad nunca se ejecuten (starvation).
Estrategias de Cola
Sección titulada «Estrategias de Cola»FIFO con prioridad:
Estrategia: FIFO con prioridadDescripción: | - Primero se ejecutan tareas de mayor prioridad - Dentro de la misma prioridad, FIFO (First In, First Out)Round-robin con prioridad:
Estrategia: Round-robin con prioridadDescripción: | - Alterna entre diferentes procesos - Respeta prioridades pero evita monopolizaciónJusto:
Estrategia: Fair schedulingDescripción: | - Garantiza tiempo de CPU a todos los procesos - Incluso los de baja prioridad se ejecutan eventualmenteMonitorización y Control
Sección titulada «Monitorización y Control»Historial de Ejecuciones
Sección titulada «Historial de Ejecuciones»Visualiza todas las ejecuciones pasadas:
Filtros disponibles: - Rango de fechas - Estado (exitoso, fallido, en progreso) - Proceso específico - Duración (más/menos de X tiempo) - Usuario que programóInformación de cada ejecución:
- Timestamp de inicio y fin
- Duración
- Estado final
- Logs completos
- Datos de entrada y salida
- Errores si los hubo
- Número de reintentos
Dashboard de Scheduler
Sección titulada «Dashboard de Scheduler»Vista general del estado del scheduler:
Métricas visibles:
- Ejecuciones programadas (próximas 24h)
- Ejecuciones en curso
- Tasa de éxito (últimos 7/30 días)
- Procesos con más fallos
- Tiempo promedio de ejecución por proceso
- Cola actual (tareas esperando)
Alertas y Notificaciones
Sección titulada «Alertas y Notificaciones»Configura notificaciones automáticas:
Tipos de Alertas
Sección titulada «Tipos de Alertas»Fallo de ejecución:
Tipo: FalloCondición: Proceso falla tras todos los reintentosDestinatarios: admin@empresa.comCanal: Email + SlackUrgencia: AltaRetrasos:
Tipo: RetrasoCondición: Proceso tarda más del 150% del tiempo esperadoDestinatarios: operaciones@empresa.comCanal: EmailUrgencia: MediaÉxito tras reintento:
Tipo: RecuperaciónCondición: Proceso falla pero luego tiene éxitoDestinatarios: equipo-desarrollo@empresa.comCanal: Email (resumen diario)Urgencia: BajaCola saturada:
Tipo: SaturaciónCondición: Más de 20 procesos en colaDestinatarios: admin@empresa.comCanal: SMS + EmailUrgencia: CríticaControl Manual
Sección titulada «Control Manual»Aunque el scheduler es automático, a veces necesitas control manual:
Pausar Programación
Sección titulada «Pausar Programación»Acción: PausarProceso: Sincronización con ERPMotivo: Mantenimiento de sistema externoDuración: Hasta reactivación manualEl proceso no se ejecutará según su programación hasta reactivarse.
Ejecutar Ahora
Sección titulada «Ejecutar Ahora»Acción: Ejecutar inmediatamenteProceso: Generación de informeIgnora: Ventanas de ejecuciónPrioridad: CríticaEjecuta el proceso inmediatamente, sin esperar a la próxima ejecución programada.
Forzar Siguiente Ejecución
Sección titulada «Forzar Siguiente Ejecución»Acción: Adelantar siguiente ejecuciónProceso: Backup incrementalNueva hora: Ahora + 5 minutosMotivo: Cambios importantes en datosCancelar Ejecución en Cola
Sección titulada «Cancelar Ejecución en Cola»Acción: CancelarEjecución: ID #12345 (en cola)Motivo: Datos de entrada incorrectosElimina una ejecución que aún no ha empezado.
Detener Ejecución en Curso
Sección titulada «Detener Ejecución en Curso»Acción: DetenerEjecución: ID #12346 (en progreso)Tipo: Graceful (espera a punto seguro)Timeout: 2 minutosSi timeout: Force stopDetiene una ejecución que ya está corriendo.
Casos de Uso Prácticos
Sección titulada «Casos de Uso Prácticos»Facturación Automática Mensual
Sección titulada «Facturación Automática Mensual»Requisitos:
- Ejecutar el último día laborable del mes
- A las 23:00 para no interferir con trabajo diario
- Si falla, reintentar hasta 3 veces
- Prioridad crítica
- No ejecutar en festivos bancarios
Configuración:
Nombre: Generación facturación mensualProgramación: CronExpresión: 0 23 * * * # Diario a las 23:00Filtro días: Último laborable del mesCalendario: España + festivos bancariosSi festivo: Día anteriorPrioridad: Crítica (5)Concurrencia: 1Reintentos: 3Intervalo reintento: 30 minutosNotificaciones: Éxito: finanzas@empresa.com Fallo: finanzas@empresa.com + admin@empresa.com Canal: Email + SMS (para fallos)Sincronización con ERP
Sección titulada «Sincronización con ERP»Requisitos:
- Cada 15 minutos de lunes a viernes
- Solo en horario laboral (8:00 - 20:00)
- Máximo 1 ejecución simultánea
- Si falla, reintentar con backoff exponencial
Configuración:
Nombre: Sincronización ERPProgramación: IntervaloCada: 15 minutosVentana permitida: Lunes a Viernes: 08:00 - 20:00Prioridad: Normal (3)Concurrencia: 1Comportamiento si ocupado: EncolarCola máxima: 10Reintentos: 5Backoff: Exponencial (1min, 2min, 4min, 8min, 16min)Notificaciones: Fallo definitivo: it@empresa.comBackup Nocturno
Sección titulada «Backup Nocturno»Requisitos:
- Todos los días a las 02:00
- Prioridad baja (no interferir con otras tareas)
- No reintentar si falla (el backup del día siguiente lo compensará)
- Notificar solo en caso de fallo
Configuración:
Nombre: Backup completo base de datosProgramación: CronExpresión: 0 2 * * * # Diario a las 02:00Prioridad: Baja (2)Concurrencia: 1Reintentos: 0Timeout: 2 horasNotificaciones: Fallo: admin@empresa.com + backup-monitoring@empresa.com Canal: Email Éxito: No notificarProcesamiento de Pedidos
Sección titulada «Procesamiento de Pedidos»Requisitos:
- Cada 5 minutos, 24/7
- Hasta 5 ejecuciones simultáneas
- Prioridad según tipo de pedido
- Reintentar errores temporales
Configuración:
Nombre: Procesamiento de pedidosProgramación: IntervaloCada: 5 minutos24/7: SíPrioridad: Dinámica Pedido VIP: Crítica (5) Pedido urgente: Alta (4) Pedido normal: Normal (3)Concurrencia: 5Comportamiento si límite: EncolarCola máxima: 50Reintentos: 3Backoff: Lineal (2min, 4min, 6min)Reintentar solo: - Timeout - Error de conexión - Error 503Notificaciones: Fallo: ventas@empresa.com (resumen cada 4 horas)Monitorización de Sistemas
Sección titulada «Monitorización de Sistemas»Requisitos:
- Cada 2 minutos, 24/7
- Ejecución inmediata (alta prioridad)
- Sin reintentos (el siguiente check detectará el problema)
- Notificación inmediata de fallos
Configuración:
Nombre: Health check sistemas críticosProgramación: IntervaloCada: 2 minutos24/7: SíPrioridad: Alta (4)Concurrencia: 10 (checks en paralelo)Reintentos: 0Timeout: 30 segundosNotificaciones: Fallo: oncall@empresa.com Canal: SMS + PagerDuty Inmediato: SíInformes Semanales
Sección titulada «Informes Semanales»Requisitos:
- Todos los lunes a las 08:00
- Si lunes es festivo, martes siguiente
- Permitir hasta 30 minutos para completar
- No reintentar automáticamente (revisar manualmente si falla)
Configuración:
Nombre: Informe semanal de ventasProgramación: SemanalDía: LunesHora: 08:00Calendario: EspañaSi festivo: Día siguiente laborablePrioridad: Normal (3)Concurrencia: 1Timeout: 30 minutosReintentos: 0Notificaciones: Éxito: direccion@empresa.com + ventas@empresa.com Fallo: it@empresa.com Incluir: Informe PDF adjunto (si éxito)Mejores Prácticas
Sección titulada «Mejores Prácticas»Diseño de Programaciones
Sección titulada «Diseño de Programaciones»Evita Solapamientos
Sección titulada «Evita Solapamientos»# MAL: Posibles conflictosProceso A: Cada 10 minutosProceso B: Cada 15 minutosAmbos acceden a: Misma base de datos sin locks# BIEN: CoordinadosProceso A: Cada 10 minutos Concurrencia: 1 Usa: Lock de BDProceso B: Cada 15 minutos Concurrencia: 1 Usa: Mismo lock de BDHorarios Escalonados
Sección titulada «Horarios Escalonados»Para múltiples procesos similares, escálales:
# MAL: Todos a la vezBackup DB1: 02:00Backup DB2: 02:00Backup DB3: 02:00Problema: Carga masiva simultánea# BIEN: EscalonadosBackup DB1: 02:00Backup DB2: 02:20Backup DB3: 02:40Beneficio: Carga distribuidaConsidera Dependencias
Sección titulada «Considera Dependencias»# Proceso con dependenciaNombre: Generar informe de ventasDepende de: Sincronización con ERPProgramación: 30 minutos después de sincronización OVerifica: Datos actualizados antes de empezarGestión de Recursos
Sección titulada «Gestión de Recursos»Limita Concurrencia Apropiadamente
Sección titulada «Limita Concurrencia Apropiadamente»# Proceso ligero (solo lecturas)Consultas BD: Concurrencia 10-20
# Proceso medio (lecturas + escrituras ligeras)Actualizaciones: Concurrencia 3-5
# Proceso pesado (operaciones intensivas)Generación informes: Concurrencia 1-2
# Proceso muy pesado (exportaciones masivas)Export completo: Concurrencia 1Establece Timeouts Realistas
Sección titulada «Establece Timeouts Realistas»# Timeout basado en datos históricosProceso: Sincronización ERPDuración media: 5 minutosDuración máxima histórica: 12 minutosTimeout configurado: 15 minutos (125% del máximo)Ventanas de Ejecución Inteligentes
Sección titulada «Ventanas de Ejecución Inteligentes»# Procesos pesados: fuera de horario laboralBackup completo: 02:00 - 06:00Reindexación: 03:00 - 05:00
# Procesos de negocio: dentro de horarioFacturación: 08:00 - 20:00Envío pedidos: 09:00 - 19:00
# Procesos críticos: 24/7 con throttlingMonitorización: 24/7, cada 5 minProcesamiento emergencias: 24/7, inmediatoManejo de Errores
Sección titulada «Manejo de Errores»Clasifica Errores
Sección titulada «Clasifica Errores»Errores transitorios (reintentar): - Timeout de red - Servicio temporalmente no disponible (503) - Rate limit (429) - esperar y reintentar - Deadlock de BD - reintentar
Errores permanentes (no reintentar): - Credenciales inválidas (401) - Recurso no encontrado (404) - Datos de entrada inválidos - Violación de reglas de negocioLogs Detallados
Sección titulada «Logs Detallados»Al fallar, registra: - Timestamp exacto - Datos de entrada - Estado del sistema antes de fallar - Stack trace completo - Variables relevantes - Intentos de reintento realizadosNotificaciones Inteligentes
Sección titulada «Notificaciones Inteligentes»# No satures con notificacionesPrimer fallo: Log silenciosoSegundo fallo: Log + alerta baja prioridadTercer fallo: Email a equipoFallo definitivo: Email + SMS a responsable
# Agrupa notificacionesEn lugar de: 100 emails (uno por fallo)Mejor: 1 email cada hora con resumen de fallosMonitorización Proactiva
Sección titulada «Monitorización Proactiva»Métricas a Vigilar
Sección titulada «Métricas a Vigilar»Métricas clave: - Tasa de éxito por proceso (objetivo: >95%) - Duración media de ejecución (detectar degradación) - Tamaño de cola (alerta si >50% capacidad) - Tiempo en cola (alerta si >5 minutos) - Distribución de fallos por tipo de errorAlertas Preventivas
Sección titulada «Alertas Preventivas»# No esperes al desastreAlerta temprana: - Si 3 fallos en 1 hora: Investigar - Si duración >150% de media: Revisar - Si cola >50% capacidad: Escalar recursos - Si tasa éxito <90%: Análisis urgenteRevisiones Periódicas
Sección titulada «Revisiones Periódicas»Cada semana: - Revisar procesos que fallaron más - Analizar tendencias de duración - Verificar programaciones aún válidas
Cada mes: - Optimizar procesos lentos - Revisar alertas y ajustar umbrales - Documentar cambios realizadosSolución de Problemas
Sección titulada «Solución de Problemas»Ejecución No Ocurre
Sección titulada «Ejecución No Ocurre»Síntomas: El proceso programado nunca se ejecuta
Causas posibles:
- Expresión cron incorrecta
- Ventanas de ejecución demasiado restrictivas
- Proceso pausado manualmente
- Robot no está en ejecución
- Zona horaria incorrecta
Soluciones:
- Valida la expresión cron en crontab.guru
- Verifica que hay ventanas de ejecución disponibles
- Confirma que el proceso no está pausado
- Asegúrate de que el robot esté activo
- Revisa la configuración de zona horaria
Ejecuciones Solapadas
Sección titulada «Ejecuciones Solapadas»Síntomas: Múltiples instancias del mismo proceso corriendo simultáneamente
Causas posibles:
- Límite de concurrencia no configurado o muy alto
- Proceso tarda más de lo esperado
- No se configuró “encolar” como comportamiento
Soluciones:
# Configuración correctivaConcurrencia: 1Comportamiento si ocupado: EncolarTimeout: [tiempo realista basado en historial]Fallos Recurrentes
Sección titulada «Fallos Recurrentes»Síntomas: Proceso falla consistentemente
Causas posibles:
- Problema con sistema externo
- Credenciales expiradas/inválidas
- Datos de entrada incorrectos
- Bug en el proceso mismo
- Recursos insuficientes
Soluciones:
- Revisa logs detallados del fallo
- Verifica conectividad con sistemas externos
- Confirma credenciales vigentes
- Ejecuta manualmente con datos de prueba
- Aumenta recursos si es necesario (memoria, CPU)
- Contacta soporte si el problema persiste
Cola Siempre Llena
Sección titulada «Cola Siempre Llena»Síntomas: Muchos procesos esperando en cola
Causas posibles:
- Demasiadas programaciones para recursos disponibles
- Procesos tardan más de lo esperado
- Límite de concurrencia muy bajo
- Recursos de robot insuficientes
Soluciones:
- Revisa métricas de duración de procesos
- Optimiza procesos lentos
- Aumenta límite de concurrencia (si aplicable)
- Escala recursos del robot
- Redistribuye programaciones (escalona horarios)
- Considera añadir un robot adicional
Reintentos No Funcionan
Sección titulada «Reintentos No Funcionan»Síntomas: Proceso no reintenta tras fallo
Causas posibles:
- Reintentos configurados a 0
- Tipo de error no configurable para reintento
- Timeout muy corto, cada reintento también falla por timeout
Soluciones:
# Verifica configuración de reintentosReintentos: 3 (no 0)Intervalo: Suficientemente largoBackoff: Exponencial (para dar tiempo a recuperación)Reintentar solo si: [lista de errores transitorios]Timeout: Realista + bufferPreguntas Frecuentes
Sección titulada «Preguntas Frecuentes»¿Puedo programar un proceso para que se ejecute solo una vez?
Sección titulada «¿Puedo programar un proceso para que se ejecute solo una vez?»Sí, usa la opción “Fecha específica” sin recurrencia:
Tipo: Fecha específicaFecha: 2024-12-25Hora: 10:00Repetir: No¿Qué pasa si el robot está apagado cuando debería ejecutarse un proceso?
Sección titulada «¿Qué pasa si el robot está apagado cuando debería ejecutarse un proceso?»Depende de tu configuración:
- Catch-up habilitado: Al encender, ejecuta las ejecuciones perdidas
- Catch-up deshabilitado: Salta las ejecuciones perdidas, continúa con la siguiente programada
¿Puedo programar procesos con parámetros diferentes?
Sección titulada «¿Puedo programar procesos con parámetros diferentes?»Sí, cada programación puede incluir parámetros específicos:
Programación 1: Hora: 09:00 Parámetros: {tipo: "incremental"}
Programación 2: Hora: 02:00 Parámetros: {tipo: "completo"}¿Cómo sé si un proceso programado falló?
Sección titulada «¿Cómo sé si un proceso programado falló?»Configura notificaciones:
Notificaciones: Fallo: tu-email@empresa.com Canal: Email + [Slack/Teams/SMS]Además, revisa el dashboard de scheduler que muestra todas las ejecuciones y sus estados.
¿Puedo pausar temporalmente una programación?
Sección titulada «¿Puedo pausar temporalmente una programación?»Sí, desde la interfaz:
- Selecciona el proceso programado
- Haz clic en “Pausar”
- Cuando quieras reactivarlo, haz clic en “Reanudar”
¿Cuántas programaciones puedo tener activas?
Sección titulada «¿Cuántas programaciones puedo tener activas?»No hay límite técnico, pero considera:
- Recursos disponibles del robot
- Posibles solapamientos
- Ventanas de ejecución
Como referencia, un robot estándar puede gestionar cómodamente 50-100 programaciones activas.
¿El scheduler funciona con el robot en modo offline?
Sección titulada «¿El scheduler funciona con el robot en modo offline?»Sí, el scheduler funciona localmente en el robot. Sin embargo:
- La configuración inicial requiere conexión
- Las notificaciones por email/SMS requieren conexión
- Si el proceso accede a sistemas externos, estos deben estar accesibles
¿Necesitas más ayuda?
Sección titulada «¿Necesitas más ayuda?»Si esta guía no resolvió tu problema o encontraste algún error en la documentación:
- Soporte técnico: help@heptora.com
- Describe la programación que intentas configurar
- Incluye la expresión cron o configuración actual
- Menciona el comportamiento esperado vs. el observado
- Adjunta logs si el proceso está fallando
Nuestro equipo te ayudará a configurar el scheduler óptimamente para tus necesidades.
Recursos Relacionados
Sección titulada «Recursos Relacionados»- Constructor de Procesos - Cómo crear procesos automatizados
- Monitorización de Procesos - Supervisa ejecuciones en tiempo real (próximamente)
- Gestión de Colas - Control avanzado de colas (próximamente)
- Instalación del Robot - Configuración del robot