Ir al contenido

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.

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.

  • ⏰ 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

Para usuarios avanzados, las expresiones cron ofrecen máxima flexibilidad:

* * * * * *
│ │ │ │ │ │
│ │ │ │ │ └─ 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)
# Cada día a las 9:00 AM
0 9 * * *
# Cada lunes a las 8:30 AM
30 8 * * 1
# Cada hora, en el minuto 15
15 * * * *
# Cada 15 minutos
*/15 * * * *
# De lunes a viernes a las 6:00 PM
0 18 * * 1-5
# Primer día de cada mes a las 00:00
0 0 1 * *
# Cada 30 minutos, de 9 AM a 5 PM, de lunes a viernes
*/30 9-17 * * 1-5
  • *: 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)
# Cada 2 horas, de 8 AM a 6 PM, lunes a viernes
0 8-18/2 * * 1-5
# A las 00:00 y 12:00, todos los días
0 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:59
59 23 28-31 * * [ $(date -d tomorrow +\%d) -eq 1 ]
# Cuartos de hora (00, 15, 30, 45) de 9 AM a 5 PM
0,15,30,45 9-17 * * *

Interfaz visual para programar sin necesidad de conocer sintaxis cron:

Ejecuta un proceso en un momento exacto:

Tipo: Fecha específica
Fecha: 2024-12-25
Hora: 08:00
Zona horaria: Europe/Madrid
Repetir: No

Casos de uso:

  • Envío de informe trimestral específico
  • Inicio de campaña en fecha concreta
  • Tarea de mantenimiento programada
  • Cierre de periodo contable

Programa en relación al momento actual:

Tipo: Relativo
Desde: Ahora
Dentro de: 2 horas
Exacto:

Casos de uso:

  • Recordatorio tras crear una tarea
  • Seguimiento automático después de X días
  • Escalado de tickets no resueltos

Patrones repetitivos para tareas periódicas:

Tipo: Diaria
Cada: 1 día
Hora: 09:00
Zona horaria: Europe/Madrid
Fin: 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
Tipo: Semanal
Cada: 1 semana
Días: Lunes, Miércoles, Viernes
Hora: 14:30
Zona horaria: Europe/Madrid

Configuraciones:

  • 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
Tipo: Mensual
Cada: 1 mes
Día: 1 (primer día del mes)
Hora: 00:00
Zona horaria: Europe/Madrid

Opciones:

  • 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
Tipo: Anual
Cada: 1 año
Mes: Enero
Día: 1
Hora: 00:00
Zona horaria: Europe/Madrid

Casos de uso:

  • Renovación de licencias
  • Informes anuales
  • Auditorías programadas
  • Mantenimiento anual

Ejecución basada en tiempo transcurrido:

Tipo: Intervalo
Cada: 30 minutos
Inicio: 09:00
Fin: 18:00
Días: Lunes a Viernes

Configuraciones 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
Tipo: Intervalo
Cada: 2 horas
Inicio: 08:00
Fin: 20:00

Casos de uso:

  • Backup incremental
  • Actualización de caches
  • Sincronización periódica
  • Informes intermedios

Sistema inteligente que considera el 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)

Puedes definir tu propio calendario:

Calendario: Personalizado
Días laborables: Lunes a Viernes
Festivos personalizados:
- 2024-01-01: Año Nuevo
- 2024-12-25: Navidad
- 2024-12-26: San Esteban (opcional)

Qué hacer cuando la ejecución cae en festivo:

Omitir:

Si festivo: Omitir
Descripción: No se ejecuta ese día

Día laborable anterior:

Si festivo: Día anterior
Descripción: Ejecuta el último día laborable previo

Día laborable posterior:

Si festivo: Día siguiente
Descripción: Ejecuta el siguiente día laborable

Ejecutar de todas formas:

Si festivo: Ejecutar
Descripción: Se ejecuta incluso en festivo

Procesamiento de nóminas:

Programación: Último día laborable del mes
Hora: 00:00
Si festivo: Día anterior
Calendario: España

Conciliación bancaria:

Programación: Días laborables
Hora: 08:00
Si festivo: Día siguiente
Calendario: España + festivos bancarios

Envío de informes:

Programación: Lunes laborables
Hora: 09:00
Si festivo: Día siguiente laborable
Calendario: Empresa (personalizado)

Define cuándo puede y no puede ejecutarse un proceso:

Ventanas permitidas:
- Lunes a Viernes: 08:00 - 20:00
- Sábados: 09:00 - 14:00
- Domingos: No permitido

Comportamiento:

  • 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
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:00

Casos de uso:

  • Evitar ejecuciones durante backup de base de datos
  • No ejecutar en horario pico de sistemas
  • Respetar ventanas de mantenimiento
Proceso: Sincronización ERP
Programación: Cada 30 minutos
Ventanas permitidas:
- Lunes a Viernes: 08:00 - 20:00
Ventanas 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 disponible

Controla cuántas instancias del proceso pueden ejecutarse simultáneamente:

Concurrencia máxima: 1
Comportamiento si límite alcanzado: Encolar
Cola máxima: 10

Opciones de comportamiento:

Encolar:

Comportamiento: Encolar
Descripción: Espera a que termine la ejecución actual
Cola máxima: 10 (máximo de ejecuciones en espera)

Omitir:

Comportamiento: Omitir
Descripción: Salta esta ejecución si hay otra en curso
Log: Registra ejecución omitida

Terminar anterior:

Comportamiento: Terminar anterior
Descripción: Cancela la ejecución en curso y empieza nueva
Advertencia: Puede dejar procesos a medias

Ejecutar en paralelo:

Comportamiento: Ejecutar paralelo
Máximo: 5 instancias simultáneas
Descripción: Permite múltiples ejecuciones hasta el límite

Proceso de lectura sin escritura:

Tipo: Consulta de datos
Concurrencia: 10
Justificación: No hay conflictos, solo lectura

Proceso con escritura en BD:

Tipo: Actualización de registros
Concurrencia: 1
Comportamiento: Encolar
Justificación: Evitar condiciones de carrera

Proceso de generación de informes:

Tipo: Generación PDF
Concurrencia: 3
Justificación: Balance entre rendimiento y recursos

Proceso de envío de emails:

Tipo: Envío masivo
Concurrencia: 5
Comportamiento: Encolar
Cola máxima: 20
Justificación: Respetar límites de proveedor de email

Configura qué hacer cuando una ejecución falla:

Reintentos: 3
Intervalo: 5 minutos
Backoff: Ninguno

Comportamiento:

  1. Primera ejecución falla
  2. Espera 5 minutos → Reintento 1
  3. Falla → Espera 5 minutos → Reintento 2
  4. Falla → Espera 5 minutos → Reintento 3
  5. Falla → Marca como fallido definitivamente
Reintentos: 5
Intervalo inicial: 1 minuto
Backoff: Exponencial
Factor: 2
Máximo: 30 minutos

Comportamiento:

  1. Falla → Espera 1 min → Reintento 1
  2. Falla → Espera 2 min → Reintento 2
  3. Falla → Espera 4 min → Reintento 3
  4. Falla → Espera 8 min → Reintento 4
  5. Falla → Espera 16 min → Reintento 5
  6. Falla → Marca como fallido

Ventajas:

  • Da tiempo al sistema externo para recuperarse
  • No sobrecarga inmediatamente tras un fallo
  • Más eficiente para problemas temporales
Reintentos: 4
Intervalo inicial: 5 minutos
Backoff: Lineal
Incremento: 5 minutos

Comportamiento:

  1. Falla → Espera 5 min → Reintento 1
  2. Falla → Espera 10 min → Reintento 2
  3. Falla → Espera 15 min → Reintento 3
  4. Falla → Espera 20 min → Reintento 4

Solo reintentar ciertos tipos de errores:

Reintentos: 3
Intervalo: 5 minutos
Reintentar 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 datos
Reintentos: 3
Notificar:
Primer fallo: No
Fallo tras reintentos:
Destinatarios:
- admin@empresa.com
- equipo-operaciones@empresa.com
Incluir:
- Log de error
- Datos de entrada
- Timestamp de fallos

Controla el orden de ejecución cuando hay múltiples tareas en cola:

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 carga
Proceso: Facturación mensual
Programación: Último día del mes, 00:00
Prioridad: Crítica (5)
Justificación: Proceso financiero crítico
Proceso: Limpieza de logs antiguos
Programación: Domingos, 03:00
Prioridad: Muy baja (1)
Justificación: Tarea de mantenimiento no urgente

La prioridad puede ajustarse según condiciones:

Proceso: Procesamiento de pedidos
Prioridad 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)

Aumenta prioridad si una tarea lleva mucho tiempo esperando:

Aging habilitado:
Incremento: +1 cada 30 minutos
Má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).

FIFO con prioridad:

Estrategia: FIFO con prioridad
Descripció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 prioridad
Descripción: |
- Alterna entre diferentes procesos
- Respeta prioridades pero evita monopolización

Justo:

Estrategia: Fair scheduling
Descripción: |
- Garantiza tiempo de CPU a todos los procesos
- Incluso los de baja prioridad se ejecutan eventualmente

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

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)

Configura notificaciones automáticas:

Fallo de ejecución:

Tipo: Fallo
Condición: Proceso falla tras todos los reintentos
Destinatarios: admin@empresa.com
Canal: Email + Slack
Urgencia: Alta

Retrasos:

Tipo: Retraso
Condición: Proceso tarda más del 150% del tiempo esperado
Destinatarios: operaciones@empresa.com
Canal: Email
Urgencia: Media

Éxito tras reintento:

Tipo: Recuperación
Condición: Proceso falla pero luego tiene éxito
Destinatarios: equipo-desarrollo@empresa.com
Canal: Email (resumen diario)
Urgencia: Baja

Cola saturada:

Tipo: Saturación
Condición: Más de 20 procesos en cola
Destinatarios: admin@empresa.com
Canal: SMS + Email
Urgencia: Crítica

Aunque el scheduler es automático, a veces necesitas control manual:

Acción: Pausar
Proceso: Sincronización con ERP
Motivo: Mantenimiento de sistema externo
Duración: Hasta reactivación manual

El proceso no se ejecutará según su programación hasta reactivarse.

Acción: Ejecutar inmediatamente
Proceso: Generación de informe
Ignora: Ventanas de ejecución
Prioridad: Crítica

Ejecuta el proceso inmediatamente, sin esperar a la próxima ejecución programada.

Acción: Adelantar siguiente ejecución
Proceso: Backup incremental
Nueva hora: Ahora + 5 minutos
Motivo: Cambios importantes en datos
Acción: Cancelar
Ejecución: ID #12345 (en cola)
Motivo: Datos de entrada incorrectos

Elimina una ejecución que aún no ha empezado.

Acción: Detener
Ejecución: ID #12346 (en progreso)
Tipo: Graceful (espera a punto seguro)
Timeout: 2 minutos
Si timeout: Force stop

Detiene una ejecución que ya está corriendo.

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 mensual
Programación: Cron
Expresión: 0 23 * * * # Diario a las 23:00
Filtro días: Último laborable del mes
Calendario: España + festivos bancarios
Si festivo: Día anterior
Prioridad: Crítica (5)
Concurrencia: 1
Reintentos: 3
Intervalo reintento: 30 minutos
Notificaciones:
Éxito: finanzas@empresa.com
Fallo: finanzas@empresa.com + admin@empresa.com
Canal: Email + SMS (para fallos)

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 ERP
Programación: Intervalo
Cada: 15 minutos
Ventana permitida:
Lunes a Viernes: 08:00 - 20:00
Prioridad: Normal (3)
Concurrencia: 1
Comportamiento si ocupado: Encolar
Cola máxima: 10
Reintentos: 5
Backoff: Exponencial (1min, 2min, 4min, 8min, 16min)
Notificaciones:
Fallo definitivo: it@empresa.com

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 datos
Programación: Cron
Expresión: 0 2 * * * # Diario a las 02:00
Prioridad: Baja (2)
Concurrencia: 1
Reintentos: 0
Timeout: 2 horas
Notificaciones:
Fallo: admin@empresa.com + backup-monitoring@empresa.com
Canal: Email
Éxito: No notificar

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 pedidos
Programación: Intervalo
Cada: 5 minutos
24/7:
Prioridad: Dinámica
Pedido VIP: Crítica (5)
Pedido urgente: Alta (4)
Pedido normal: Normal (3)
Concurrencia: 5
Comportamiento si límite: Encolar
Cola máxima: 50
Reintentos: 3
Backoff: Lineal (2min, 4min, 6min)
Reintentar solo:
- Timeout
- Error de conexión
- Error 503
Notificaciones:
Fallo: ventas@empresa.com (resumen cada 4 horas)

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íticos
Programación: Intervalo
Cada: 2 minutos
24/7:
Prioridad: Alta (4)
Concurrencia: 10 (checks en paralelo)
Reintentos: 0
Timeout: 30 segundos
Notificaciones:
Fallo: oncall@empresa.com
Canal: SMS + PagerDuty
Inmediato:

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 ventas
Programación: Semanal
Día: Lunes
Hora: 08:00
Calendario: España
Si festivo: Día siguiente laborable
Prioridad: Normal (3)
Concurrencia: 1
Timeout: 30 minutos
Reintentos: 0
Notificaciones:
Éxito: direccion@empresa.com + ventas@empresa.com
Fallo: it@empresa.com
Incluir: Informe PDF adjunto (si éxito)
# MAL: Posibles conflictos
Proceso A: Cada 10 minutos
Proceso B: Cada 15 minutos
Ambos acceden a: Misma base de datos sin locks
# BIEN: Coordinados
Proceso A: Cada 10 minutos
Concurrencia: 1
Usa: Lock de BD
Proceso B: Cada 15 minutos
Concurrencia: 1
Usa: Mismo lock de BD

Para múltiples procesos similares, escálales:

# MAL: Todos a la vez
Backup DB1: 02:00
Backup DB2: 02:00
Backup DB3: 02:00
Problema: Carga masiva simultánea
# BIEN: Escalonados
Backup DB1: 02:00
Backup DB2: 02:20
Backup DB3: 02:40
Beneficio: Carga distribuida
# Proceso con dependencia
Nombre: Generar informe de ventas
Depende de: Sincronización con ERP
Programación: 30 minutos después de sincronización
O
Verifica: Datos actualizados antes de empezar
# 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 1
# Timeout basado en datos históricos
Proceso: Sincronización ERP
Duración media: 5 minutos
Duración máxima histórica: 12 minutos
Timeout configurado: 15 minutos (125% del máximo)
# Procesos pesados: fuera de horario laboral
Backup completo: 02:00 - 06:00
Reindexación: 03:00 - 05:00
# Procesos de negocio: dentro de horario
Facturación: 08:00 - 20:00
Envío pedidos: 09:00 - 19:00
# Procesos críticos: 24/7 con throttling
Monitorización: 24/7, cada 5 min
Procesamiento emergencias: 24/7, inmediato
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 negocio
Al fallar, registra:
- Timestamp exacto
- Datos de entrada
- Estado del sistema antes de fallar
- Stack trace completo
- Variables relevantes
- Intentos de reintento realizados
# No satures con notificaciones
Primer fallo: Log silencioso
Segundo fallo: Log + alerta baja prioridad
Tercer fallo: Email a equipo
Fallo definitivo: Email + SMS a responsable
# Agrupa notificaciones
En lugar de: 100 emails (uno por fallo)
Mejor: 1 email cada hora con resumen de fallos
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 error
# No esperes al desastre
Alerta 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 urgente
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 realizados

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:

  1. Valida la expresión cron en crontab.guru
  2. Verifica que hay ventanas de ejecución disponibles
  3. Confirma que el proceso no está pausado
  4. Asegúrate de que el robot esté activo
  5. Revisa la configuración de zona horaria

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 correctiva
Concurrencia: 1
Comportamiento si ocupado: Encolar
Timeout: [tiempo realista basado en historial]

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:

  1. Revisa logs detallados del fallo
  2. Verifica conectividad con sistemas externos
  3. Confirma credenciales vigentes
  4. Ejecuta manualmente con datos de prueba
  5. Aumenta recursos si es necesario (memoria, CPU)
  6. Contacta soporte si el problema persiste

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:

  1. Revisa métricas de duración de procesos
  2. Optimiza procesos lentos
  3. Aumenta límite de concurrencia (si aplicable)
  4. Escala recursos del robot
  5. Redistribuye programaciones (escalona horarios)
  6. Considera añadir un robot adicional

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 reintentos
Reintentos: 3 (no 0)
Intervalo: Suficientemente largo
Backoff: Exponencial (para dar tiempo a recuperación)
Reintentar solo si: [lista de errores transitorios]
Timeout: Realista + buffer

¿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ífica
Fecha: 2024-12-25
Hora: 10:00
Repetir: 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:

  1. Selecciona el proceso programado
  2. Haz clic en “Pausar”
  3. 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

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.