Ir al contenido

Tareas programadas

Pier te permite ejecutar comandos de shell en tus servidores —ya sea bajo demanda o según una programación cron— y almacena comandos reutilizables como plantillas. El mismo planificador que lanza estas tareas también impulsa las copias de seguridad y la limpieza de Docker.

Una plantilla es un comando de shell guardado más sus valores predeterminados: un nombre, una descripción opcional, un tiempo de espera predeterminado y un mapa de entorno predeterminado. Las plantillas son el bloque reutilizable de construcción: elige una, selecciona un servidor y ejecútala.

Puedes iniciar una ejecución de dos formas: a partir de una plantilla, o con un comando puntual en línea. Si proporcionas ambos, gana el comando en línea. Cada ejecución apunta a un servidor, admite una anulación de entorno opcional y un tiempo de espera (predeterminado 1800 segundos, acotado entre 1 segundo y 24 horas).

El comando se ejecuta en el pier-agent del servidor de destino, y Pier sondea al agente aproximadamente una vez por segundo para reflejar stdout, stderr y estado en el registro de la ejecución — de modo que la interfaz muestra una cola de registro casi en vivo. Una ejecución termina en uno de estos estados terminales:

EstadoSignificado
success / failedEl agente terminó; consulta el código de salida
cancelledLa cancelaste tú (se le indica al agente que se detenga)
timeoutSuperó el tiempo de espera de la ejecución
unreachableNo se pudo contactar con el agente

Las tareas se ejecutan a través de pier-agent. El servidor local y los servidores de tipo peer no ejecutan tareas de shell de esta manera.

Una programación asocia una expresión cron y una zona horaria a una acción. Existen tres tipos de acción:

AcciónQué hace
taskEjecuta una plantilla de tarea en un servidor elegido
backupLanza una programación de copia de seguridad
cleanupEjecuta la canalización de limpieza de Docker

Las programaciones de copia de seguridad y de limpieza se gestionan desde sus propias pantallas, pero aparecen aquí en la lista unificada de Programaciones, de modo que tengas un único lugar para ver qué se ejecuta y cuándo. Cada programación mantiene un historial de sus ejecuciones recientes, y puedes habilitarla, deshabilitarla o ejecutarla de inmediato.

Un único planificador hace tick cada 60 segundos y lanza cualquier programación cuya próxima hora de ejecución haya pasado. Es deliberadamente conservador respecto a solapamientos y ejecuciones omitidas:

  • Sin doble disparo. Si la ejecución anterior de una programación aún está en curso, el nuevo tick registra una ejecución skipped en lugar de iniciar una segunda.
  • Sin reproducción. Una indisponibilidad prolongada simplemente omite las ejecuciones que habrían tenido lugar; next_run_at se recalcula hacia adelante, nunca se rellena retroactivamente.

Pier acepta el formato cron convencional de 5 campos (m h dom mon dow) así como los atajos comunes @hourly, @daily, @weekly, @monthly y @yearly. Las expresiones se validan al crear o editar una programación — una inválida se rechaza con el error del analizador. Un endpoint de validación también previsualiza las siguientes horas de disparo de una expresión y zona horaria dadas, de modo que puedas confirmar que una programación hace lo que esperas antes de guardarla.