Identificación de tareas que están actualmente en ejecución
Cuando se ejecuta una tarea, se bloquea el registro de base de datos de tareas hasta que finaliza la tarea. Determine si una tarea está ejecutando o no.
Acerca de esta tarea
Antes de la versión 6.0.2, todas las tareas se ejecutaban en una sola transacción global. Este proceso no sólo impedía que la tarea se ejecutara correctamente más de una vez sino que también bloqueaba todos los intentos a la lectura del estado de la tarea, dado que cada tarea utilizaba el aislamiento de transacciones de lectura confirmada.
- NotificationSink
Se puede establecer un EJB NotificationSink en la tarea utilizando el método setNotificationSink en el objeto TaskInfo. El bean NotificationSink puede entonces anotar cronológicamente el ciclo de vida de la tarea en un registro de base de datos aparte en una tabla personalizada. Esto producirá un archivo de registro histórico de la tarea que se puede consultar independientemente del planificador. Esta solución funciona para todas las versiones del servicio de planificador. Para obtener información detallada Recepción de notificaciones del planificador.
- Ejecución con demora y lectura no confirmada
En la Versión 6.0.2 y posterior, hay dos comportamientos que permiten al planificador buscar y recuperar métodos de API, por ejemplo getTask, getTaskStatus o findTasksByName, para ver el estado actual de la tarea sin bloqueo. Para mostrar el estado actual de la tarea, incluido su estado de ejecución sin confirmar, siga estos pasos: