Especificación del Trabajo y Estado

Una Especificación de Trabajo es un conjunto detallado de instructions que indica el 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 Puesto

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 en el scheduled hora(s)

triggerIdentifier

Identificador para pasar junto al triggerCommand al invocar SchedulingHelper en el scheduled hora(s)

failureCommand

No

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

failureIdentifier

No

Identificador para pasar junto con el failureCommand cuando se invoca 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 temporales que tienen failed 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 específico instant). Configurar 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 el 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: Es scheduled para ejecutar (y puede que haya ejecutado en el pasado)

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

  • CANCELED: Era anteriormente SCHEDULED pero no fue activado

  • FAILED: Failed para ejecutar