Utilisation des planificateurs
Les planificateurs permettent l'exécution des tâches d'une application Java™ EE (Java Platform, Enterprise Edition) à l'heure demandée. Les planificateurs permettent également aux développeurs d'applications de créer leurs propres composants EJB (Enterprise JavaBeans) de session sans état afin de recevoir des notifications d'événement pendant la durée d'une tâche, en permettant l'ajout d'utilitaires de journalisation ou d'applications de flux de travaux.
Pourquoi et quand exécuter cette tâche
- Appel d'une méthode de bean session
- Envoi d'un message JMS (Java Message Service) à une file d'attente ou une rubrique.
Les composants EJB session sans état servent également à fournir des agendas utilisateur génériques. Les développeurs peuvent soit utiliser le bean d'agenda fourni, soit créer leur propre bean pour leurs agendas d'entreprise. Par exemple, l'un de vos processus métier peut comporter la facturation de services. Le planificateur utilisant des composants EJB sans état, vous pouvez planifier le moment de l'envoi de messages électroniques périodiques aux clients ayant reçu les factures. Le service de planification effectue ces tâches, en les répétant si besoin est, en fonction de leurs métadonnées.
Un planificateur est un mécanisme par lequel le service de temporisation pour Enterprise Java Beans est exécuté pour les temporisateurs persistants. Vous pouvez configurer le service de temporisation EJB de sorte qu'il utilise un grand nombre de fonctions fournies par les planificateurs. Pour plus d'informations, reportez-vous à la rubrique relative à la configuration d'un service de temporisation. Les temporisateurs non persistants n'utilisent pas le service de planification, mais ils peuvent utiliser le gestionnaire de travaux pour le planificateur. Les temporisateurs non persistants utilisent directement un gestionnaire de travaux.
Planificateurs | Temporisateurs EJB |
---|---|
Exécutent des composants EJB de session sans état et envoient des messages JMS | Exécutent tous les types EJB, excepté les beans session avec état |
Persistants, transactionnels et haute disponibilité | Persistants, transactionnels et haute disponibilité |
Exécution unique des tâches garantie | Exécution unique des temporisateurs garantie si l'EJB du temporisateur utilise une transaction globale gérée par conteneur. |
Exécutent des tâches répétées à l'aide de toute règle de calcul | Exécutent des tâches répétées à des intervalles réguliers définis en millisecondes |
Utilisent un calcul temporel à délai fixe modifié pour déterminer les intervalles répétés (prochaine phase d'exécution fondée sur l'heure de début de la tâche précédente) | Utilisent un calcul temporel à taux fixe pour déterminer les intervalles répétés (l'heure de la prochaine tâche est basée sur l'heure planifiée d'origine) |
Fonction de contrôle de tâche par programmation avec utilisation du composant de l'EJB session sans état NotificationSink | Aucun contrôle de temporisateur par programmation |
Arrêtent l'exécution des tâches tardives ou temporelles | Arrêtent l'exécution des tâches tardives ou temporelles (par détection manuelle dans l'implémentation javax.ejb.TimedObject). |
Gèrent tout cycle de vie de tâche (recherche, interruption, reprise, annulation et purge des tâches par programmation et par JMX - Java Management Extensions). | Recherchent et annulent ses temporisateurs par programmation. Les administrateurs recherchent et annulent les temporisateurs à l'aide de l'utilitaire de ligne de commande. |
Stockent une quantité de texte limitée avec les données, telle qu'un nom (données arbitraires stockées en externe). | Stockent les données arbitraires avec un temporisateur |
Cette tâche montre comment gérer, développer et interopérer avec les planificateurs et les tâches suivantes.