Pour développer et planifier des tâches, utilisez un planificateur configuré.
Procédure
- Recherchez un planificateur configuré. Reportez-vous à la rubrique Accès aux planificateurs. Chaque planificateur configuré est disponible à partir de deux modèles de programmation différents :
- Une application de serveur Java™ EE (Java Platform,
Enterprise Edition), telle qu'un servlet ou un composant EJB (Enterprise JavaBeans) peut utiliser l'API du planificateur. L'accès aux planificateurs s'effectue en
les recherchant à l'aide d'un nom JNDI (Java Naming and Directory Interface) ou d'une référence de ressource.
- Les applications JMX (Java Management Extensions), telles que les scripts wsadmin, peuvent utiliser l'API du planificateur à l'aide de MBean WASScheduler.
- Développez la tâche.
L'API du planificateur prend en charge différentes
implémentations de l'interface TaskInfo, chacune permettant de planifier un type de travail particulier. Pour plus d'informations, reportez-vous aux rubriques Développement d'une tâche qui appelle un bean session et Développement d'une tâche qui envoie un message JMS (Java Message Service). L'objet de tâche référencé dans la rubrique Développement d'une tâche qui envoie un message JMS (Java Message Service) peut envoyer un message JMS à une file d'attente ou à une rubrique.
Avertissement : La création et la manipulation des tâches planifiées dans l'interface
Scheduler ne sont prises en charge qu'à partir du conteneur d'EJB ou du conteneur Web (beans Enterprise ou servlets).
La consultation et l'utilisation d'un planificateur configuré à partir d'un conteneur client d'application Java EE ne sont pas prises en charge.
- Recevez les notifications d'un planificateur. Une notification sink (collecteur de notifications) est définie au niveau d'une tâche pour la réception des événements de notification qui sont générés par un planificateur lorsque celui-ci effectue une opération sur une tâche.
- Utilisez des agendas personnalisés. Vous pouvez attribuer un bean de session UserCalendar
à une tâche qui permette aux planificateurs d'utiliser des algorithmes de date personnalisés et prédéfinis pour déterminer le moment auquel une tâche doit être exécutée. Pour plus d'informations, reportez-vous à la rubrique Interface UserCalendar.
- Soumettez les tâches à un planificateur. Une fois qu'un objet TaskInfo a été créé, celui-ci peut être soumis au planificateur pour la création de tâche via l'appel de la méthode Scheduler.create().
- Gérez les tâches à l'aide d'un planificateur.
- Sécurisez les tâches à l'aide d'un planificateur.
Exemple
Vous pouvez utiliser les agendas SIMPLE et CRON de n'importe quelle application Java EE. L'exemple suivant illustre le processus.
Utilisation d'agendas de planificateur par défaut. Le code ci-dessous illustre la façon correcte et la façon non correcte d'utiliser les connexions.
L'utilisation des agendas de planificateur par défaut implique l'interrogation de l'objet foyer de
l'EJB (Enterprise JavaBeans) UserCalendarHome par défaut, la création du
bean UserCalendar et l'appel de la méthode applyDelta(). Pour plus de détails sur la méthode applyDelta et sur la syntaxe des agendas SIMPLE et CRON, consultez la rubrique Interface 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;
// Créer un contexte initial
InitialContext ctx = new InitialContext();
// Rechercher et identifier UserCalendar home par défaut.
UserCalendarHome defaultCalHome=(UserCalendarHome)
PortableRemoteObject.narrow(ctx.lookup(
UserCalendarHome.DEFAULT_CALENDAR_JNDI_NAME),
UserCalendarHome.class);
// Créer l'instance UserCalendar par défaut.
UserCalendar defaultCal = defaultCalHome.create();
// Calculer une date en utilisant CRON qui se base sur
// la date et l'heure actuelles. Renvoyer la date suivante, c'est-à-dire
// samedi à 14h
Date newDate =
defaultCal.applyDelta(new Date(),
"CRON", "0 0 2 ? * SAT");