style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Java Scheduler

Hola Amigos, soy nuevo en esta pagina, les tengo una pregunta a ver si alguien me puede ayudar..

La question es que quiero hacer un scheduler para agendar jobs que ejercutaran queries a "X" base de datos, he empezado ver quartz , que opinian creen que sea buen API para mi requerimiento o hay alguno otro que deberia revisar la idea es :

Que un usuario llene unos campos como el cron expression, query username y password se hara una extracion de los registros y se creara un archivo, y se mandare por email el resultdo de su queries, pero quiero ser capaz de monitorear la JVM porque si varios Job estan corriendo al mismo tiempo se pueden terminar el heap de la JVM, tener la habilidad de terminarlos y monitorealos

Espero sus opiniones de antemano gracias

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de benek

Si lo que buscas es algo

Si lo que buscas es algo sencillo, esto lo puedes lograr muy fácilmente con Spring Boot y la anotación @Scheduled: https://spring.io/guides/gs/scheduling-tasks/

Sobre esa misma app puedes integrarle Spring Batch, también de manera sencilla: https://spring.io/guides/gs/batch-processing/

Saludos.

Imagen de jsmaster

Cuidado con QUARTZ

Hace poco utilizamos Quartz para una solución de ejecución cada X tiempo, y como solución sólo nos funciono un tiempo de manera estable, pero notamos que los hilos que crea no los mata el GC (Garbage Colector), y esto en poco tiempo va a terminar como tu dices, consumiendo toda la memoria heap y dejará de responder en cualquier momento, lo que utilizamos como solución fué crear hilos que pudieran reutilizarse o destruirse de manera segura, e implementamos expresiones propias por ejemplo 1h ó 3m que significa que se repite cada hora o 3 minutos.

Imagen de SuperSerch

Duda

Por qué tienes la necesidad de hacer las peticiones a X base en tiempos espaciados? Quizás exista una forma mas simple de hacer esto.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">