Programación de envío de cuarzo, ¡esto es suficiente!
Quartz es otro proyecto de código abierto en el campo de la programación de trabajos de la organización de código abierto OpenSymphony. Está completamente desarrollado en Java y se puede utilizar para realizar tareas programadas, similar a java.util.Timer. Pero en comparación con Timer, Quartz agrega muchas funciones:
Trabajos persistentes: son temporizadores que mantienen el estado de programación
Gestión de trabajos: gestiona de manera eficiente los trabajos programados
p>
1.Trabajo
Trabajo es la clase de tarea que desea implementar. Cada trabajo debe implementar la interfaz org.quartz.job. Debe implementar el método Execute() de esta interfaz.
2. Activador
Los activadores proporcionan activadores para que usted realice tareas. Por ejemplo, si desea marcar su entrada a las 8 en punto todos los días, el activador se configurará para realizar tareas. la tarea a las 8 en punto.
Existen dos tipos principales de disparadores: SimpleTrigger y CornTrigger.
3. Programador
El programador es un programador de tareas que integra el trabajo de tarea y el disparador. Es responsable de ejecutar el trabajo según el tiempo establecido por el Trigger.
1. Dependencias
2. Redacción de trabajos
3. Llamadas.
JobExecutionContext es un identificador que contiene diversa información contextual que apunta a la instancia de JobDetail que se está ejecutando y a la instancia de Trigger que completa la ejecución.
Cuando Schedule llama a un trabajo, pasa JobExecutionContext al método exceute() del trabajo.
A través del objeto JobExecutionContext, un trabajo puede acceder a detalles de datos sobre el entorno de ejecución de Quartz y el trabajo en sí. Puedo acceder a información sobre desencadenantes y trabajos a través de este contexto.
1. Obtener a través del mapa
Al programar un trabajo, JobDataMap se almacenará en JobExecutionContext y es de muy fácil acceso.
jobDataMap puede cargar cualquier objeto serializable. Estos objetos se pasarán al trabajo al ejecutar el objeto de instancia del trabajo
Parámetros de entrada
Parámetros de salida
El trabajo tiene una subinterfaz StatefulJob que representa un estado task Es una interfaz marcada sin métodos, su propósito es hacerle saber a Quartz el tipo de tarea para que se puedan utilizar diferentes planes de ejecución.
Una tarea sin estado tiene su propia copia de JobDataMap cuando se ejecuta, se crea una nueva instancia cada vez que se ejecuta y los cambios en JobData no afectarán la siguiente ejecución. Las tareas con estado comparten la misma instancia de JobDataMap y los cambios realizados en JobDataMap cada vez que se ejecuta la tarea se guardarán y estos cambios se podrán ver en ejecuciones posteriores. En otras palabras, cada ejecución de una tarea tendrá un impacto en las ejecuciones posteriores.
Es por esta razón que los trabajos sin estado se pueden ejecutar simultáneamente, mientras que los trabajos con estado no se pueden ejecutar.
CornTrigger será más útil si necesita activar tareas de acuerdo con un cronograma como un calendario, en lugar de periódicamente como SimpleTrigger. Esto se debe a que es un programador de tareas basado en calendario.
Con CronTrigger, puede especificar "todos los viernes al mediodía" o a las 10 en punto todos los días de la semana. O todos los lunes, como este activador de horario.
1. Expresión Cron - Expresión Cron
La expresión Cron se utiliza para configurar instancias de CronTrigger. Una expresión Cron es una cadena que consta de siete subexpresiones, cada una de las cuales describe un detalle del plan independiente. Estas expresiones están separadas por espacios. Se representan de la siguiente manera
1. Segundos Segundos
2. Minutos Minutos
3. Horas Horas
Abril Día Mensual Todos los días
Mes de mayo
6 domingo Día de la semana
Año de 7 años
Por ejemplo, la siguiente es la expresión Cron Un ejemplo de la fórmula. >
Por ejemplo, la expresión Cron escrita a continuación se ejecuta cada 5 segundos el 19 de septiembre de cada año.