Documentation for a newer release is available. View Latest

Job Specification and Status

Una Job Specification es un conjunto detallado de instrucciones que le dice al IPF Persistent Scheduler cómo ejecutar un trabajo específico. Incluye varios componentes clave, cada uno con un propósito específico. Un trabajo puede tener diferentes estados dependiendo de dónde se encuentre en su ciclo de vida:

jobspec status

Job Specification

Consiste en las siguientes partes:

Nombre ¿Obligatorio? Descripción

jobSpecificationKey

Un identificador único para este trabajo

jobRequestor

Un identificador único para el solicitante (un solicitante puede tener múltiples trabajos)

schedulingSpecification

No

La expresión cron para un trabajo recurrente.

singleSchedule

No

La hora exacta para programar un trabajo de una sola vez (con precisión de milisegundos).

triggerCommand

El Command que se enviará al SchedulingHelper en el/los momento(s) programado(s)

triggerIdentifier

Un ID para enviar al SchedulingHelper en el/los momento(s) programado(s)

failureCommand

Cuando se detecta una ejecución fallida, el SchedulingHelper recibirá este mensaje.

failureIdentifier

Un ID para enviar al SchedulingHelper en el/los momento(s) programado(s)

calendar

No

Calendario a usar para este trabajo (vea Calendars)

zoneId

No

Un id de zona horaria, como Europe/Paris, usado para sobrescribir la zona horaria por defecto del sistema al programar una tarea. Lista de zone ids.

deleteTime

No

Usado para el índice Time-To-Live (TTL Indexes). Trabajos de una sola vez que se han ejecutado correctamente. Trabajos de una sola vez que han fallado la ejecución. Todos los trabajos que han sido cancelados. Todos estos trabajos se actualizarán con una "hora de eliminación" y ya no estarán disponibles al consultarlos en la base de datos. Permitirá recuperar rápidamente las especificaciones de trabajo más recientes y filtrar (en caso de rehidratación) los trabajos que han sido excluidos.

processingContext

No

Un Processing Context para este trabajo. Si elige proporcionar un Processing Context, se deben incluir valores para processingEntity, clientRequestId y unitOfWorkId.

Una especificación de trabajo válida DEBE especificar exactamente una de schedulingSpecification (para un trabajo recurrente basado en cron) o singleSchedule (para un trabajo de una sola vez en un instante específico). Establecer ambas resultará en un fallo.

Job Execution Status

La colección JobExecutionStatus está vinculada a la colección JobSpecification por el campo jobSpecificationId.

La colección JobExecutionStatus va a cambiar con más frecuencia, porque el estado de un trabajo cambia más frecuentemente que su especificación.

Contiene el jobSpecificationId, el executionStatus, el updatedTime y el deleteTime. Es una colección de solo anexado y para obtener el estado de ejecución actual del trabajo solo necesitamos ordenar por updatedTime y obtener la entrada más reciente.

De manera similar a la colección JobSpecification, el campo deleteTime se usa para el índice TTL (Time-To-Live). Además, para trabajos recurrentes, cuando un trabajo se activa, la entrada anterior se marcará para eliminación. Solo vale la pena mantener la entrada más reciente.

Definiciones de estado

Los diferentes estados son:

  • SCHEDULED: Está programado para ejecutarse (y puede haber corrido en el pasado)

  • TRIGGERED: Ya se ejecutó y no volverá a ejecutarse

  • CANCELED: Previamente estaba SCHEDULED pero no fue activado

  • FAILED: Falló al ejecutarse