2011-01-18 17 views
12

Para una aplicación Java de monitoreo de sistema que actualmente se ejecuta en la línea de comandos y usa ScheduledExecutorService, me gustaría escribir una versión de aplicación web simple (que se puede ejecutar en un contenedor Servlet como Apache Tomcat o Jetty).Quartz vs. ScheduledExecutorService en la aplicación web Java

He leído acerca de Quartz como uno de los programadores de trabajos populares para aplicaciones web. ¿Sería mejor (quizás debido a una mejor integración del contenedor de servlets) transferir esta aplicación de ScheduledExecutorService a Quartz?

Agregando otra dependencia de la biblioteca a la aplicación no es un problema, estoy interesado en razones técnicas contra el uso de ScheduledExecutorService.

Respuesta

8

Depende de lo que lo está utilizando para.

Quartz es útil para los tiempos programados, p. cada hora en la hora.

ScheduledExecutorService es útil para repetir tareas que no tienen que ocurrir en un momento específico. Es más simple y posiblemente más eficiente. Si tienes esto funcionando, me indica que no necesitas Quartz.

+0

El cuarzo realmente tiene buenos usos para programar trabajos regulares. –

+3

Creo que Java tiene las API para realizar lo que hace Quartz. Todavía no entendía la necesidad de un marco de Quartz. – Newbie

+2

Quartz le permite decir que desea ejecutar una tarea cada hora. p.ej. 12:00, 13:00, etc. Las API incorporadas le permiten ejecutar cada hora (comenzando en algún punto) pero esto se desplaza con el tiempo. (Hasta 10 segundos por día) –

7

ScheduledExecutorService opera en un nivel inferior y usted tendría que implementar todas las instalaciones de monitoreo/mantenimiento de programación usted mismo.

cuarzo tiene tons of facilities tales como Job Persistencia, Transacciones, etc. La agrupación

Cuestiones relacionadas