Quartz (Framework)
Quartz
| |
---|---|
Basisdaten
| |
Hauptentwickler | Terracotta[1] |
Entwickler | Terracotta |
Aktuelle Version | 2.2.1 (24. September 2013) |
Betriebssystem | plattformunabhängig |
Programmiersprache | Java |
Kategorie | Framework |
Lizenz | Apache-Lizenz 2.0 |
www.quartz-scheduler.org |
Quartz ist ein quelloffenes Framework für die Steuerung von Jobs in Java. Quartz wird verwendet, um einfache, aber auch komplexe Zeitpläne für die Ausführung von beliebig vielen Jobs in Java zu erstellen und diese dann auszuführen. Die Version 1.0 kam am 13. September 2002 heraus, die aktuelle Version 2.2.0 am 28. Juni 2013.
Eigenschaften
Die mit Quartz definierten Zeitpläne können mittels CronTrigger
auf Kalendereinträgen beruhen (zum Beispiel 0 0 12 ? * WED
bedeutet "jeden Mittwoch um 12:00"). Alternativ können Zeitpläne mittels SimpleTrigger
auf durch Date
definierten Startzeitpunkten und mittels Millisekundenabständen und Wiederholungsanzahlen definierten Wiederholungen (zum Beispiel "um 12:00 nächsten Mittwoch und dann 5 Mal in 10 Sekunden Abständen") beruhen.
Mittels Calender
können für die Zeitpläne Ausnahmen definiert werden (zum Beispiel "nicht an Wochenenden und Feiertagen").
Die durch Zeitpläne gesteuerten Jobs können in einer J2EE-Umgebung als verteilte XA-Transaktionen laufen. Somit kann sichergestellt werden, dass Jobs entweder korrekt durchgelaufen sind oder gar nicht.
Jobs können beliebige Java-Klassen sein, sie müssen lediglich das Job
-Interface implementieren. Eventuelle JobListener
s und TriggerListener
s werden von der Ausführung (und anderen Ereignissen) von Jobs benachrichtigt.
Jobs und ihre Trigger können persistiert werden - d.h. auch wenn die Quartz-ausführende Applikation gestoppt wird oder die Hardware ausfällt, werden Jobs nach neuerlichem Anlaufen von Quartz bei Bedarf wieder gestartet.
Verwendung
Laut eigener Homepage wird Quartz von vielen tausenden Institutionen (unter anderem von Vodafone und dem Verteidigungsministerium der Vereinigten Staaten) und Softwareprodukten (unter anderem von Produkten innerhalb des Jakarta-Projektes, von Jira und Confluence, Spring, Liferay Portal und JBoss) eingesetzt. Quartz 1.6.0 wurde direkt von der Quartz-Homepage mehr als 100.000 Mal heruntergeladen.[2]
Vergleich mit anderen Frameworks
- Javas eigene Klassen
Timer
undTimerTask
: Bieten grundlegende Scheduling-Funktionen, aber zum Beispiel keine Persistenz, unflexibles Scheduling (nur Startzeit und Intervall), kein Threadpooling (d.h. Ressourcenproblematik), etc. - cron (und Java cron Frameworks): Bieten einen der ebenfalls in Quartz verwendeten Scheduling-Mechanismen, nicht aber weiterführende Funktionalität wie Job-Persistenz, Transaktionen oder Job-Listeners und -Plug-Ins
- Flux: Kommerzielle Software, bietet eine Reihe von weiterführenden Funktionalitäten wie E-Mail-Benachrichtigungen, Dateitransfer und einen grafischen Workflow-Designer. [3]
Literatur
- Chuck Cavaness: Quartz Job Scheduling Framework: Building Open Source Enterprise Applications. Prentice Hall, 2006, ISBN 0-13-188670-3
- Christophe Verré: Using OpenSymphony Quartz Scheduler in Spring, JavaRanch Journal Volume 6, Number 2 (November 2007)
Weblinks
- Quartz Webpräsenz
- Using the OpenSymphony Quartz Scheduler, aus der Referenzdokumentation von Spring
Quellennachweis
- ↑ Terracotta Announces Acquisition of Quartz, the Leading Open Source Scheduling Software (englisch)
- ↑ http://quartz-scheduler.org/docs/quartz_users.html Quartz Users
- ↑ http://www.fluxcorp.com/products/flux/technical/quartz.html Flux or Quartz auf der Flux Homepage