Aplicación y principios de la programación de trabajos de cuarzo.
El principio de Quartz no es complicado, siempre que comprenda algunos conceptos y luego sepa cómo iniciar y cerrar el programador.
1. Trabajo
Representa un trabajo, es decir, el contenido específico a ejecutar. Solo hay un método en esta interfaz
void ejecutar (contexto JobExecutionContext)
El trabajo ejecutado por el subproceso se encapsulará en JobDataMap, con JobExecutionContext como parámetro del método de ejecución. y jobdetail es la encapsulación del Job, que incluye la clase de Job, los datos correspondientes, el nombre, la agrupación, etc.
2. JobDetail
JobDetail representa un programador ejecutable específico, y Job es el programador ejecutable que se ejecutará. Además, JobDetail también contiene programadores de tareas y estrategias.
3. Trigger significa configurar un parámetro de programación, que se almacenará en el trigger la próxima vez que se ejecute el trabajo.
4. El programador representa un contenedor de programación, y un contenedor de programación puede registrar múltiples JobDetails y Triggers. Cuando se combinan Trigger y JobDetail, se pueden programar a través del contenedor Scheduler.
5.QuartzSchedulerResources es equivalente a la biblioteca de recursos de programación, que incluye JobStore, ThreadPool y otros recursos. Scheduling obtiene atributos relevantes a través de QuartzSchedulerResources.
6. JobStore es un lugar donde se almacenan tareas y activadores. Proporciona una gran cantidad de métodos para agregar, eliminar y modificar tareas similares a las tareas operativas.
5. QuartzSchedulerThread es un subproceso de programación y ThreadPool es un grupo de subprocesos de ejecución. La siguiente figura es la pila de subprocesos después de la ejecución:
Quartz expone las operaciones de tareas al Programador a través del usuario. Puede agregar la tarea JobDetail y el disparador al grupo de tareas, eliminar la tarea y detener la tarea. El Programador coloca estas tareas y disparadores en un JobStore aquí tiene forma de memoria y forma de persistencia. También se puede personalizar y ampliar a un servicio independiente.
Internamente, utiliza un subproceso de programación QuartzSchedulerThread para encontrar las tareas que deben ejecutarse la próxima vez y encapsula estas tareas en un grupo de subprocesos ThreadPool. Su estructura de componentes se muestra en la siguiente figura:
p>La relación entre varias llamadas se muestra en la siguiente figura:
La siguiente es una implementación simple de cuarzo. Implementación simple de quartz:
Primero es una clase de programación:
Luego está la implementación de la interfaz de trabajo:
La función principal de prueba es la siguiente:
Los resultados son los siguientes:
Los resultados son los siguientes.