scheduled quartz job examples example ejemplo annotation java spring scheduling quartz-scheduler

java - job - Programación de primavera: @ Scheduled vs Quartz



spring boot quartz (2)

Quartz es un orden de magnitud más complejo que el programador integrado de Spring, incluido el soporte para trabajos persistentes, transaccionales y distribuidos. Sin embargo, es un poco cerdo, incluso con el soporte API de Spring.

Si todo lo que necesita es ejecutar métodos en un bean cada X segundos, o en un cronograma cron, entonces @Scheduled (o las diversas opciones en el esquema de configuración <task> Spring) es probablemente suficiente

Estoy leyendo los documentos de Spring 3.0 con respecto a la programación. Me estoy inclinando hacia JobDetailBean de Spring para Quartz. Sin embargo, la anotación @Scheduled ha capturado mi ojo. Parece que esta es otra forma de programar tareas usando Spring Framework. Basado en los documentos, Spring proporciona tres formas de programación:

  1. @Programado
  2. Via Quartz
  3. A través del temporizador JDK

No tengo ningún interés en el JDK Timer. ¿Por qué debería elegir @Scheduled en Quartz? (Cuando menciono a Quartz me refiero al uso del envoltorio de frijoles Spring para Quartz).

Digamos que mi caso de uso es lo suficientemente complejo como para comunicarme a un servicio web de terceros para importar y exportar datos a intervalos específicos.


Tengo que @Scheduled mi propia experiencia con respecto al uso de @Scheduled versus Quartz como la implementación de programación en una aplicación de Spring.

La programación de trabajos tenía los siguientes requisitos:

  • Los usuarios finales deben tener la capacidad de guardar y programar (definir el tiempo de ejecución) sus propias tareas
  • Los trabajos programados durante el tiempo de inactividad del servidor no deben omitirse de la cola de trabajos

Por lo tanto, debemos intentar utilizar la implementación de Quartz (versión 2.2.3) para permitir la persistencia de trabajos en una base de datos. Algunas conclusiones básicas son las siguientes:

  • La integración con una aplicación Spring 4 MVC no es difícil usando el archivo quartz.properties.
  • Tuvimos la capacidad de elegir una segunda base de datos para almacenar los trabajos de la base de datos principal.
  • Los trabajos programados durante el tiempo de inactividad del servidor comienzan a funcionar siempre que aparezca el servidor.
  • Como beneficio adicional, logramos mantener en la base de datos principal información útil (y más orientada al usuario) sobre trabajos programados definidos por el usuario utilizando JobListener personalizado y TriggerListener .
  • Quartz es una biblioteca muy útil en aplicaciones con requisitos de programación más complejos.