Scheduler verwenden
Über Scheduler können Java™-EE-Anwendungstasks (Java Platform, Enterprise Edition) zu einer angeforderten Zeit ausgeführt werden.Außerdem bieten Scheduler den Anwendungsentwicklern die Möglichkeit, eigene Komponenten für Stateless-Session-EJBs (Enterprise JavaBeans) zu erstellen und durch Einbinden eigener Protokollierungsprogramme oder Workflow-Anwendungen während der Ausführung der Task Ereignisbenachrichtigungen zu empfangen.
Informationen zu diesem Vorgang
- Aufruf der Methode einer Session-Bean
- Senden einer JMS-Nachricht (Java Message Service) an eine Warteschlange oder ein Topic
Komponenten für Stateless-Session-EJBs werden auch für generische Kalenderfunktionen verwendet. Entwickler können die bereitgestellte Bean für Kalender verwenden oder eine eigene Bean für vorhandene Geschäftskalender erstellen. Beispielsweise könnte einer Ihrer Geschäftsprozesse die Rechnungsstellung für Dienste beinhalten. Durch die Verwendung von Stateless-EJB-Komponenten im Scheduler können Sie planen, in welchen Abständen Rechnungen per E-Mail an Ihre Kunden verteilt werden sollen. Der Scheduler-Service führt diese Tasks basierend auf den Metadaten der Task aus und wiederholt sie gegebenenfalls.
Ein Scheduler ist der Mechanismus, mit dem der Zeitgeberservice für Enterprise JavaBeans für persistente Zeitgeber ausgeführt wird. Sie können den EJB-Zeitgeberservice so konfigurieren, dass zahlreiche der von den Schedulern bereitgestellten Features verwendet werden. Weitere Einzelheiten finden Sie in den Informationen zur Konfiguration eines Zeitgeberservice. Nicht persistente Zeitgeber verwenden den Scheduler-Service nicht, können aber den Arbeitsmanager als Scheduler verwenden. Nicht persistente Zeitgeber verwenden einen Arbeitsmanager direkt.
Scheduler | EJB-Zeitgeber |
---|---|
Führt Komponenten von Stateless-Session-EJBs aus und sendet JMS-Nachrichten | Führt alle Typen von EJBs mit Ausnahme von Stateful-Session-Beans aus |
Persistent, transaktionsorientiert und hoch verfügbar | Persistent, transaktionsorientiert und hoch verfügbar |
Tasks, die garantiert nur einmal ausgeführt werden | Zeitgeber, die garantiert nur einmal ausgeführt werden, wenn die Zeitgeber-EJB eine containergesteuerte globale Transaktion verwendet |
Führt sich wiederholende Tasks auf der Basis von Berechnungsregeln aus | Führt sich wiederholende Tasks auf der Basis eines Wiederholungsintervalls aus, das in Millisekunden definiert ist |
Verwendet eine modifizierte Zeitberechnung mit fester Verzögerung, um die Wiederholungsintervalle zu bestimmen (nächste Ausführungszeit basiert auf der Startzeit der vorherigen Task) | Verwendet eine feste Zeitberechnung, um die Wiederholungsintervalle zu bestimmen (Ausführungszeit der nächsten Task basiert auf der ursprünglich geplanten Zeit) |
Programmgesteuerte Tasküberwachung unter Verwendung der Stateless-Session-EJB "NotificationSink" | Keine programmgesteuerte Zeitgeberüberwachung |
Ausführung verspäteter oder zeitkritischer Tasks stoppen | Ausführung verspäteter oder zeitkritischer Tasks stoppen (durch manuelle Ermittlung in der javax.ejb.TimedObject-Implementierung) |
Verwaltet den Lebenszyklus von Tasks (find, suspend, resume, cancel und purge) über das Programm und über Java Management Extensions (JMX) | Sucht und bricht Zeitgeber über das Programm ab. Administratoren können Zeitgeber mit einem Befehlszeilendienstprogramm suchen und abbrechen. |
Speichert zusammen mit den Daten eine begrenzte Menge an Text, beispielsweise einen Namen (beliebige Daten, die extern gespeichert werden) | Speichert beliebige Daten mit einem Zeitgeber |
Diese Task veranschaulicht die Verwaltung, Entwicklung und Interaktion mit Schedulern und nachfolgenden Tasks.