Planificación de tareas con Spring
Introducción
A menudo nos vemos obligados a que nuestras aplicaciones
tengan que ejecutar
determinadas tareas cada cierto tiempo, por ejemplo cada 5
minutos comprobar si tenemos correos nuevos o mandar
información a nuestros clientes todos los domingos a las
22:00. De forma limpia
podemos planificar estas tareas con Spring el cual se integra
perfectamente con Quartz para realizar la invocación de la
lógica de negocio que corresponda.
Spring nos proporciona varias formas de planificar
las tareas a través de Quartz por ejemplo creándonos
una clase que extienda de QuartzJobBean que a su vez implementa
org.quartz.Job. En este tutorial nos centraremos en la
invocación directa de métodos de nuestras
clases de negocio sin necesidad de extender nada ya que a veces por
problemas de diseño no es posible.
Configuración de Spring
Para ver el funcionamieto de Spring schedule haremos una clase de prueba cuyo
único trabajo será comprobar la memoria total y la libre de la máquina virtual.
El contenido de la clase es lo de menos, lo principal será ver cómo configuar Spring para
que llame al método cada cierto tiempo.
La configuración de Spring para utilizar
Quartz no puede ser más sencilla. En el applicationContext.xml
bastaría con añadir lo siguiente:
También es posible invocar a la lógica de negocio en una determinada fecha, por ejemplo si queremos
mandar un correo el dia 1 de cada mes al personal para informar de que han cobrado la nómina. Para ello
se utiliza la clase CronTriggerBean en lugar de SimpleTriggerBean que se configurará de forma similar al caso anterior:
Con la propiedad cronExpression indicamos la fecha en la que deberá ejecutar la tarea, los valores hacen referencia
a los siguientes datos (de izquierda a derecha):
- segundos (0 – 59)
- minutos (0 – 59)
- horas (0 – 23)
- día del mes (0 – 31)
- mes (1 – 12)
- día de la semana (MON-SUN)
Conclusión
Ya veis lo fácil que es planificar tareas con Spring. Basta con indicarle la clase y el método que deberá llamar pasado x tiempo
y hará todo el trabajo por nosotros. Podéis encontrar muchas más información en la web oficial
Esta página es la mejor con respecto a los tutoriales de spring y lo mejor de todo es que esta en español, pero en esta entrada no aparece el codigo del ejemplo, ojala lo puedan arreglar