viernes, 24 de julio de 2015

Tareas programadas Quartz plugin


Quartz plugin permite a nuestras aplicaciones Grails tener la capacidad de programar tareas que se ejecutaran utilizando un intervalo especifico de tiempo o bien mediante un cron.

Cron

En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab. El nombre cron viene del griego chronos (χρόνος) que significa "tiempo". 



Instalando Quartz plugin

Para instalar quartz plugin únicamente basta con agregar la siguiente línea en la sección plugins de nuestro BuildConfig.groovy

compile ":quartz:1.0.2"



Programando tareas

Para crear una nueva tarea se ejecuta el comando “grails créate-job” seguido del nombre de nuestra tarea. Grails creará una nueva tarea y la dejara en el directorio “grails-app/jobs”.

Después de ejecutar el comando nuestra tarea programada se verá así: 

class TareaProgramadaJob {
    static triggers = {
      simple repeatInterval: 5000l // execute job once in 5 seconds
    }

    def execute() {
        // execute job
    }
}


Como podemos observar hay un trigger que le indica a la tarea que se debe ejecutar cada 5 segundos, también podemos establecer una hora específica por medio de un cron, haciendo los cambios quedaría de la siguiente manera:

class TareaProgramadaJob {
    static triggers = {
        cron name: 'ejemplo', cronExpression: "00 00 02 * * ?"
    }

    def execute() {
        // execute job
        println "esta tarea se ejecutará todos los días a las 2 am"
    }
}


Así establecemos que debe ejecutarse todos los días a las 2 de la mañana. Para entender a detalle la cronExpression les dejo la siguiente tablita:


No hay comentarios:

Publicar un comentario

Generar de Fichas Wisp Gratis

Debido a la necesidad de muchos colegas que me han solicitado configuraciones y procedimiento para realizar fichas y así poder vender servic...