springframework quartz org mkyong job example crontriggerfactorybean annotation spring triggers quartz-scheduler

org - spring quartz annotation example



Quartz obtiene la lista de trabajos completados (0)

En la versión 2.2 de Quartz, ¿cómo podemos encontrar si un trabajo está terminado y cuándo? Tengo la job key .

Primero intenté activar el trabajo y ver el estado del disparador.

List<? extends Trigger> triggers = sched.getTriggersOfJob(jobKey); for (Trigger trigger : triggers) { .... }

Pero descubro que el cuarzo elimina el disparador del trabajo de la base de datos cuando el desencadenador termina con éxito.

Busqué en Google un hallazgo http://forums.terracotta.org/forums/posts/list/6791.page

Quartz limpia todos sus propios datos no utilizados para que el administrador no tenga que borrar los registros que llenan la base de datos (muchos usuarios tienen millones de disparadores activados repetidamente. No es práctico y dificulta el rendimiento para mantener todos esos datos).

Si desea un historial de cuándo los desencadenantes tienen fuego, implemente un TriggerListener y registre la información usted mismo, de la misma manera que lo hace el LoggingTriggerHistoryPlugin.

Es probable que Quartz 2.2 agregue una función de historial con una nueva API para recuperar los datos.

Por otro lado, reviso el código de cuarzo ( http://www.quartz-scheduler.org/api/2.2.1/org/quartz/Trigger.CompletedExecutionInstruction.html ) y encuentro que el estado de activación puede establecerse en NOOP , RE_EXECUTE_JOB , SET_TRIGGER_COMPLETE , DELETE_TRIGGER , SET_ALL_JOB_TRIGGERS_COMPLETE , SET_TRIGGER_ERROR , SET_ALL_JOB_TRIGGERS_ERROR

Creo que esta enumeración se utiliza para el desencadenador fallido, pero me pregunto si hay una manera de hacer que Trigger persista.