Monday, November 30, 2015

Schedule background jobs on application start from EJB - Correr funciones automaticas al inicio de una aplicacion desde un EJB Singleton

Para correr un metodo automaticamente cuando se inicia la aplicacion, por ejemplo estar ejecutando una funcion cada X cantidad de minutos, segundos, horas, etc, nos srive para realizar backups, copiar, eliminar X determinada tipo de informacion, en fin ya es a la creatividad y de la necesidad que se tenga que realizar, en j2SE se manejavan los Threads para hacer este tipo de operaciones aca, en JAVA EE, necesitamos crear un EJB de tipo Singleton asi:
 
 
@Singleton
public class BackgroundJobManager {

    @Schedule(hour="0", minute="0", second="0", persistent=false)
    public void someDailyJob() {
        // ... (runs every start of day)
    }

    @Schedule(hour="*/1", minute="0", second="0", persistent=false)
    public void someHourlyJob() {
        // ... (runs every hour of day)
    }

    @Schedule(hour="*", minute="*/15", second="0", persistent=false)
    public void someQuarterlyJob() {
        // ... (runs every 15th minute of hour)
    }

    @Schedule(hour="*", minute="*", second="*/30", persistent=false)
    public void someHalfminutelyJob() {
        // ... (runs every 30th second of minute)
    }

}



@Singleton
public class HiloSingleton implements HiloSingletonRemote {


 @PostConstruct
    @Schedule(hour="*", minute="*/1", second="0", persistent=false)
    @Override
    public void corre() {

                //IMpementar logica del meodo, este metodo corre cada Minuto, aun despues de cerrar la aplicacion, el metodo cesa cuando se realiza un undeploy de la aplicacion .ear o cuando se apaga el servidor wildfly
          
    }

}

No comments:

Post a Comment