Verwenden Sie zum Entwickeln und Planen von Tasks einen konfigurierten Scheduler.
Vorgehensweise
- Einen konfigurierten Scheduler suchen. Weitere Informationen finden Sie im Artikel
"Auf Pläne Zugreifen". Jeder
konfigurierte Scheduler ist in zwei unterschiedlichen Programmiermodellen verfügbar:
- Eine Java™-EE-Serveranwendung (Java Platform, Enterprise Edition),
z. B. ein Servlet oder eine EJB-Komponente (Enterprise JavaBeans),
kann die Scheduler-API verwenden.
Der Zugriff auf Scheduler erfolgt über Lookup-Operationen mit einem JNDI-Namen (Java Naming and Directory Interface) oder einer
Ressourcenreferenz.
- JMX-Anwendungen (Java Management Extensions), wie z. B. wsadmin-Scripts, können die
Scheduler-API mit WASScheduler-MBeans verwenden.
- Task entwickeln.
Die Scheduler-API unterstützt verschiedene Implementierungen der
Schnittstelle "TaskInfo", die zur Planung bestimmter Aufgabenarten verwendet werden können.
Weitere Einzelheiten finden Sie in den Artikeln "Task entwickeln, die eine Session-Bean aufruft" und "Task entwickeln,
die eine JMS-Nachricht (Java Message Service) sendet".
Das Taskobjekt, das im Artikel "Task entwickeln,
die eine JMS-Nachricht (Java Message Service) sendet" referenziert wird, kann eine JMS-Nachricht
an eine Warteschlange oder an ein Topic senden.
Achtung: Die Erstellung und Bearbeitung geplanter Tasks über die
Schnittstelle "Scheduler" wird nur innerhalb des
EJB-Containers oder Web-Containers (Enterprise-Beans oder Servlets) unterstützt. Das
Suchen und Verwenden eines konfigurierten Scheduler über den Container eines
Java-EE-Anwendungsclients wird nicht unterstützt.
- Scheduler-Benachrichtigungen empfangen. Sie können eine Benachrichtigungssenke (Notification Sink)
für eine Task definieren, um
Benachrichtigungsereignisse zu empfangen, die vom Scheduler generiert werden, wenn dieser eine
Operation für die Task ausführt.
- Angepasste Kalender verwenden. Sie können einer Task
eine Session-Bean "UserCalendar" zuordnen, die Schedulern die Verwendung angepasster und vordefinierter
Datumsalgorithmen für die Bestimmung des Ausführungszeitpunkts einer Task ermöglicht.
Weitere Einzelheiten finden Sie im Artikel zur Schnittstelle "UserCalendar".
- Tasks an einen Scheduler übergeben. Nachdem ein
TaskInfo-Objekt erstellt wurde, kann es zwecks Taskerstellung mittels der Methode
Scheduler.create() an den Scheduler übergeben werden.
- Tasks mit einem Scheduler verwalten.
- Tasks mit einem Scheduler sichern.
Beispiel
Sie können die Kalender SIMPLE und CRON in jeder Java-EE-Anwendung verwenden.
Der Prozess ist im folgenden Beispiel veranschaulicht.
Standard-Scheduler-Kalender verwenden. Die folgenden Codebeispiele veranschaulichen die richtige und die falsche Verwendung von Verbindungen.
Wenn Sie die Standard-Scheduler-Kalender verwenden möchten, müssen Sie das
Enterprise JavaBeans-Home-Standardobjekt UserCalendarHome suchen, die Bean UserCalendar erstellen und die Methode
applyDelta() aufrufen. Einzelheiten zur Methode applyDelta und zur Syntax für die Kalender
SIMPLE und CRON finden Sie im Artikel zur Schnittstelle "UserCalendar".
import java.util.Date;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import com.ibm.websphere.scheduler.UserCalendar;
import com.ibm.websphere.scheduler.UserCalendarHome;
// Ausgangskontext erstellen
InitialContext ctx = new InitialContext();
// Standard-Home-Objekt UserCalendar suchen und eingrenzen.
UserCalendarHome defaultCalHome=(UserCalendarHome)
PortableRemoteObject.narrow(ctx.lookup(
UserCalendarHome.DEFAULT_CALENDAR_JNDI_NAME),
UserCalendarHome.class);
// Standard-UserCalendar-Instanz erstellen.
UserCalendar defaultCal = defaultCalHome.create();
// Mit CRON ein Datum basierend auf dem aktuellen Datum
// und der aktuellen Uhrzeit berechnen. Das nächste Datum
// zurückgegeben, das Samstag 2 Uhr nachmittags entspricht.
Date newDate =
defaultCal.applyDelta(new Date(),
"CRON", "0 0 2 ? * SAT");