2011-01-18 2 views
12

Pour une application de surveillance du système qui s'exécute actuellement sur la ligne de commande et utilise ScheduledExecutorService, je voudrais écrire une version d'application web simple (qui peut être exécutée dans un conteneur de servlet comme Apache Tomcat ou jetée).Quartz vs. ScheduledExecutorService dans l'application Web Java

J'ai lu environ Quartz comme l'un des planificateurs de travaux les plus populaires pour les applications Web. Serait-il préférable (peut-être à cause d'une meilleure intégration du conteneur de servlets) de porter cette application de ScheduledExecutorService à Quartz? Ajouter une autre dépendance de la bibliothèque à l'application n'est pas un problème, je suis intéressé par des raisons techniques contre l'utilisation de ScheduledExecutorService.

Répondre

8

Cela dépend de ce que vous utilisez pour.

Le quartz est utile pour les temps programmés, par ex. chaque heure à l'heure.

ScheduledExecutorService est utile pour répéter des tâches qui n'ont pas à se produire à un moment précis. C'est plus simple et peut-être plus efficace. Si vous avez ce travail, cela m'indique que vous n'avez pas besoin de Quartz.

+0

Quartz a vraiment de bons usages pour planifier des travaux réguliers. –

+3

Je pense que Java a les API pour effectuer ce que Quartz fait. Je n'ai toujours pas compris le besoin d'un cadre Quartz. – Newbie

+2

Quartz vous permet de dire que vous voulez exécuter une tâche à l'heure. par exemple. 12:00, 13:00 etc. Les API intégrées vous permettent de courir toutes les heures (à partir d'un certain point) mais cela dérive au fil du temps. (Autant que 10 secondes par jour) –

7

ScheduledExecutorService fonctionne à un niveau inférieur et vous devez implémenter vous-même toutes les installations de surveillance/maintenance de l'ordonnanceur.

Quartz a tons of facilities tels que Job persistance, transactions, Clustering, etc.

Questions connexes