Aufgaben zeitgesteuert ausführen mit Spring-TaskScheduler

Bei Geschäftsanwendungen wird häufig eine zeitgesteuerte Ausführung (Scheduling) von Aufgaben benötigt, wie beispielsweise das regelmäßige Abrufen eines Email-Kontos. Dabei unterscheidet man beim Scheduling prinzipiell zwischen zwei Arten:

  • eine Aufgabe zu einem bestimmten Zeitpunkt ausführen (z.B.: am 24.12.2012, um 18:00 Uhr)
  • Aufgaben in festgelegten zeitlichen Abständen wiederholt ausführen (z.B.: alle 20 Minuten)

Für Scheduling können wir im Java-Umfeld die Timer-Klassen (java.util.Timer + java.util.TimerTask) des JDKs benutzen oder eine Bibliothek einsetzen, wie den sehr mächtigen Quartz-Scheduler. Falls man allerdings in seiner Anwendung Spring 3 verwendet, sollte man sich auf jeden Fall dessen Möglichkeiten anschauen (Spring-Dokumentation: Task Executing and Scheduling):

  • Scheduling mit TaskScheduler und Runnable-Objekt
  • Scheduling mit Hilfe des Task-Namespaces von Spring
  • Scheduling aufgrund der Spring Scheduling-Annotations

Weiterlesen

Advertisements