# Portability: SYSTEM
# Last validated: 2026-05-17
# Next review: 2027-05-17
# Próximo examen: 2026-11-15
# Recursos: [hub/scheduler.py, gui/daemon_service.py, Scheduler_jobs, Scheduler_runs]

SCHEDULER - trabajos en segundo plano y servicio de programación
----------------------------------------------------

FECHA: 2026-02-28

Nota: `bach Scheduler...` es el nuevo nombre para el programador.
El antiguo comando `bach daemon ...` todavía está disponible como alias.

POLÍTICA IMPORTANTE
---------------
**TODOS LOS TRABAJOS DEL PROGRAMADOR ESTÁN DESHABILITADOS DE FORMA PREDETERMINADA.**

Motivo: los procesos automáticos pueden funcionar con sesiones de chat activas
y el generador de avisos chocan. Los trabajos son solo manuales.
activado si es necesario.

El programador pausa automáticamente la sincronización de OneDrive durante la operación
para evitar conflictos de sincronización.

Ver: docs/CONCEPT_daemon_policy.md

CLI COMMANDS (programador de bach)
-----------------------------

  empleos Mostrar todos los empleos
  estado estado del programador
  status --json Estado del programador como JSON
  notas de recuperación y verificación previa del programador médico
  doctor --json Verificación previa del programador como JSON
  start [--bg] Iniciar el servicio del programador (--bg para fondo)
  detener Detener el servicio del programador
  ejecutar <ID> Ejecutar trabajos individuales manualmente
  logs [N] Mostrar las últimas entradas del registro (predeterminado: 20)
  jobs --json Trabajos del programador con estado calculado como JSON

SESSION-SYSTEM
--------------

  inicio de sesión [--NOMBRE del perfil] Iniciar programador de sesión
  parada de sesión Detener programador de sesión
  estado de la sesión Mostrar estado de la sesión
  estado de la sesión --json Estado de la sesión como JSON
  médico de la sesión Notas previas al vuelo y de recuperación de la sesión
  médico de sesión --json Comprobación previa de sesión como JSON
  pausa de sesión [--NOMBRE del perfil] [Razón] Activador de pausa para el perfil
  reanudar sesión [--profile NAME] Reanudar perfil
  dirección de sesión [--nombre del perfil] "Texto" Guardar información de control para la siguiente sesión
  sesión clear-steer [--profile NAME] Borrar instrucciones de control de perfil
  disparador de sesión [--NOMBRE del perfil] Activar sesión manualmente
  perfiles de sesión Listar perfiles disponibles

  Ejemplo con ensayo:
    bach scheduler session trigger --profile wartung --dry-run

  Ejemplo con control de operador:
    bach scheduler session steer --profile ati "Bitte heute nur Health-Checks und Docs anfassen."
    bach scheduler session status --json

TIPOS DE TRABAJO
---------

  intervalo Repetición después de un período de tiempo (por ejemplo, 24 h, 30 m)
  Basado en programación cron (por ejemplo, "0 2 * * *" = 2 a. m. todos los días)
  evento Activador basado en eventos (activado externamente)
  manual Sólo se puede ejecutar manualmente
  cadena Ejecución de trabajos encadenados (sistema de cadena)

El programador verifica automáticamente cada 5 minutos las tareas recurrentes vencidas.

TRABAJOS DISPONIBLES (todos APAGADOS de forma predeterminada)
-------------------------------------------
Nota: La lista de trabajos es dinámica. Trabajos actuales a través de: trabajos de planificador de bach

Empleos de ejemplo:
  Función de programación de nombre de ID
  -- ----------------------- --------- --------------------------------
  1 escáner de 60 m Escanear carpetas de software para tareas
  2 copias de seguridad 24h Copia de seguridad automática
  3 procesos de escaneo de bandeja de entrada de 30 millones de carpetas de bandeja de entrada
  4 pesos de memoria de 24 horas de peso consolidado (decaimiento)
  5 consolidar-archivar 24h Archivar entradas antiguas
  6 índice de consolidación 7d Ayuda/Índice de actualización de Wiki
  7 sesiones de compresión de consolidación-compresión de 24 horas
  8 consolidar-nosotros 7d Consolidación semanal
  9 Mantenimiento nocturno cron 0 2 Cadena de mantenimiento nocturno
  10 Copia de seguridad semanal cron 0 3 0 Copia de seguridad semanal

Trabajos del conector (v2.0, a través del programador de configuración del conector bach):
  -- conector_poll_and_route Conectores de 2 m polen + enrutamiento de la bandeja de entrada
  -- Connector_dispatch 1m Enviar cola saliente con reintento

EJECUTAR TRABAJO MANUALMENTE
----------------------
Método recomendado en lugar de programador automático:

  # Ejecutar el trabajo una vez
  bach scheduler run 1         # Ejecutar el escáner una vez
  bach scheduler run 2         # Crear copia de seguridad una vez
  bach scheduler jobs --json   # Trabajos para herramientas/agentes externos

  # O directamente el comando
  bach scan run                # Escáner
  bach backup create           # Copia de seguridad
  bach consolidate run         # Consolidación

GUI
---
  http://127.0.0.1:8000/scheduler panel del programador

  - Activar/desactivar trabajos
  - Ejecutar manualmente
  - Ver las últimas ejecuciones

ALIAS: bach daemon ...
----------------------
El nombre del comando anterior `bach daemon` sigue siendo un alias
disponible para compatibilidad con versiones anteriores. Ambas formas de mando
son equivalentes:

  bach daemon jobs      == trabajos del programador de bach
  bach daemon status    == estado del programador de bach
  bach daemon start     == inicio del programador de bach

VER TAMBIÉN
----------
  bach --help daemon           Documentación anterior (alias)
docs/CONCEPT_daemon_policy.md Políticas del programador
  bach --help connector        Sistema conector (cola, reintento)
  bach --help maintain         Herramientas de mantenimiento
  bach --help backup           Sistema de respaldo
  bach --help consolidation    Consolidación de memoria
