Especificación del Trabajo y Estado

Una Especificación de Trabajo es un conjunto detallado de instrucciones que indica 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 en qué parte de su ciclo de vida se encuentre:

jobspec status

Especificación del Trabajo

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

El cron expression para un trabajo recurrente.

singleSchedule

No

El tiempo exacto para programar un trabajo único (con precisión de milisegundos).

triggerCommand

El Command para enviar a la SchedulingHelper a la(s) hora(s) programada(s)

triggerIdentifier

Identificador para pasar junto con el triggerCommand al invocar SchedulingHelper a la(s) hora(s) programada(s)

failureCommand

No

Si está configurado, cuando se detecta una ejecución fallida, el SchedulingHelper que admite este comando será invocado.

failureIdentifier

No

Identificador para pasar junto con el failureCommand al invocar el SchedulingHelper después de un fallo

calendar

No

Calendario a utilizar para este trabajo (ver Calendarios)

zoneId

No

Un identificador de zona horaria, como Europe/Paris, utilizado para anular la zona horaria predeterminada del sistema cuando scheduling una tarea. Si se omite, se utiliza el valor predeterminado del sistema. Lista de identificadores de zona.

lateExecutionThreshold

No

Umbral de duración para el manejo de la ejecución tardía. Si el trabajo comienza después del tiempo planificado más este umbral,lateExecute(..) se invoca en lugar de execute(..).

deleteTime

No

Utilizado para el índice de Tiempo de Vida (Índices TTL). Trabajos puntuales que se han ejecutado con éxito. Trabajos únicos que han fallado en su ejecución. Todos los trabajos que han sido cancelados. Todos estos trabajos se actualizarán con un "tiempo de eliminación" y ya no estarán disponibles al consultarlos en la base de datos. Nos permitirá recuperar rápidamente las últimas especificaciones de trabajo y filtrar (en caso de rehidratación) los trabajos que han sido excluidos.

processingContext

No

Un Contexto de Procesamiento para este trabajo. Si usted eligió proporcionar un Contexto de Procesamiento, los valores para processingEntity,clientRequestId y unitOfWorkId debe ser incluido.

Una especificación de trabajo válida DEBE especificar exactamente uno de schedulingSpecification(para un cron-basado en trabajo recurrente) o singleSchedule(para un trabajo único en un instante específico). Establecer ambos resultará en un fallo.

Estado de Ejecución del Trabajo

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

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

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

De manera similar a la JobSpecification colección, la deleteTime El campo se utiliza para el índice TTL (Tiempo de Vida). Además, para trabajos recurrentes, cuando un trabajo es triggered, la entrada anterior será marcada para su eliminación. Solo la entrada más reciente merece ser conservada.

Definiciones de estado

Los diferentes estados son:

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

  • TRIGGERED: Ya se ha ejecutado y no se volverá a ejecutar.

  • CANCELED: Fue anteriormente SCHEDULED pero no fue activado

  • FAILED: Falló al ejecutar