Ir al contenido

Estados y ciclo de vida

Una ejecución es cada vez que se ejecuta un proceso en una máquina. Desde que se crea hasta que termina, recorre una serie de estados bien definidos. Conocerlos te permite saber, de un vistazo, qué está pasando y por qué.

stateDiagram-v2
  [*] --> queued
  queued --> running
  queued --> cancelled: cancelada antes de empezar
  running --> completed: terminó bien
  running --> failed: terminó con error
  running --> stopped: detenida a pedido
  running --> cancelled: terminada en ejecución
  running --> paused: pausada
  paused --> running: reanudada
  paused --> stopped: detenida
  paused --> cancelled: terminada
  completed --> [*]
  failed --> [*]
  stopped --> [*]
  cancelled --> [*]
EstadoDescripciónCómo se llega
queuedEn cola, esperando a que el agente seleccionado la recibaAl crear la ejecución (manual o por trigger)
runningEl agente está ejecutando el procesoEl agente recibe la orden y empieza
completedFinalizó con éxito (código de salida 0)El playbook terminó sin errores
failedFinalizó con errorError en el playbook, código de salida ≠ 0, o desconexión del agente
stoppedDetenida a pedido, sin dejar nada a mediasUn usuario pidió Detener y el proceso paró en un punto seguro
cancelledCancelada o terminada antes de acabarUn usuario la canceló o la terminó, o superó su duración máxima
pausedPausada: quieta en la siguiente actividad, lista para seguirUn usuario pidió Pausar; Reanudar la devuelve a running

La ejecución existe pero el agente seleccionado aún no la ha recibido. Normalmente dura segundos. Si se queda aquí, esa máquina suele estar Desconectada u Ocupada; el detalle muestra el tiempo en cola y el motivo de la espera. Ver Monitoreo de agentes.

El agente descargó el paquete y está ejecutando el playbook. Aquí ves los logs en tiempo real. La máquina que la ejecuta aparece como Ocupada.

El playbook llegó al final sin lanzar un error y devolvió código de salida 0. Es el resultado esperado de una ejecución sana.

Algo impidió completar la ejecución. Las causas típicas:

  • Una actividad lanzó un error no controlado (un selector que no aparece, un archivo que no existe, una credencial que no resuelve).
  • El playbook terminó con un código de salida distinto de 0.
  • El agente se desconectó durante la ejecución y no reconectó dentro del período de gracia.

Revisa siempre los logs para ver la causa exacta.

Alguien la terminó (o la canceló estando en cola) desde el portal, el Designer o el Agent antes de que acabara. Útil para cortar un proceso que se quedó colgado o que se lanzó por error.

Alguien pidió Detener y el proceso paró en un punto seguro: terminó lo que estaba haciendo y cerró limpio. No es un error. Ver Detener o terminar.

Alguien pulsó Pausar: el robot se queda quieto en la siguiente actividad y conserva todo lo que llevaba. Reanudar lo hace seguir desde ahí; también puedes Detener o Terminar una ejecución pausada.

Una ejecución en curso se puede parar de dos formas, desde el portal (lista de ejecuciones y detalle), el Designer o la bandeja del Agent:

AcciónQué haceEstado final
DetenerDeja terminar lo que está haciendo y no empieza nada más. Mientras tanto la ejecución aparece como Deteniendostopped (Detenida)
TerminarLa corta de inmediato. Lo que estaba haciendo queda a medias; el finally de un Try / Catch tiene unos segundos para cerrar lo abierto, y los items de cola que tenía bloqueados vuelven a la cola al instante.cancelled (Cancelada)

Detener funciona cuando el proceso consulta la detención: Process Queue lo hace sola y, en cualquier otro punto, la actividad Should Stop. Las plantillas del Designer ya la incluyen.

En una ejecución en cola que aún no empezó, la acción es Cancelar: sale de la cola y no llega a correr.

Si la máquina que está procesando una ejecución pierde la conexión con Zoan Cloud y no reconecta dentro de un período de gracia (~3 minutos), la ejecución se marca como failed automáticamente. Esto evita que una ejecución quede “colgada” indefinidamente si la máquina se apaga o se cae la red.

Es un tiempo distinto al que tarda la máquina en mostrarse Desconectada (~2 minutos sin señal). Uno vigila la salud de la máquina; el otro, el destino de una ejecución concreta.

Por defecto, la plataforma no impone un límite de duración: un proceso puede tardar segundos u horas según lo que haga, y nada lo corta por su cuenta.

Si quieres asegurarte de que una máquina no quede ocupada por un robot atascado, pon una Duración máxima (opcional, minutos), de 1 minuto a 7 días. Si la ejecución tarda más, se termina con un error claro. Se puede fijar en varios niveles, y gana el más específico:

  1. Al iniciar la ejecución.
  2. En el disparador que la lanza.
  3. En el proceso (Actualizar versión en su menú ⋮).
  4. En el proyecto, desde el Designer.

El detalle de la ejecución muestra el Límite que aplica. En el proceso también puedes activar el aviso de Robot atascado: si pasan los minutos que indiques Sin avance, el portal lo marca y, solo si lo eliges, lo cancela.