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:
Job Specification
Consiste en las siguientes partes:
| Nombre | ¿Obligatorio? | Descripción |
|---|---|---|
|
Sí |
Un identificador único para este trabajo |
|
Sí |
Un identificador único para el solicitante (un solicitante puede tener múltiples trabajos) |
|
No |
La expresión cron para un trabajo recurrente. |
|
No |
La hora exacta para programar un trabajo de una sola vez (con precisión de milisegundos). |
|
Sí |
El |
|
Sí |
Un ID para enviar al SchedulingHelper en el/los momento(s) programado(s) |
|
Sí |
Cuando se detecta una ejecución fallida, el SchedulingHelper recibirá este mensaje. |
|
Sí |
Un ID para enviar al SchedulingHelper en el/los momento(s) programado(s) |
|
No |
Calendario a usar para este trabajo (vea Calendars) |
|
No |
Un id de zona horaria, como |
|
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. |
|
No |
Un Processing Context para este trabajo. Si elige proporcionar un Processing Context, se deben incluir valores para |
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.