| |||||
auteur : Gildas Cuisinier | |||||
Il est tout à fait possible d'utiliser l'API Timer de Java afin de gérer une plannification de tâches avec Spring.
Pour cela, la première étape est de créer un Bean qui possèdera une méthode qui représentera la tâche en question :
Ce bean doit bien evidemment être défini dans le contexte Spring :
Ce Bean peut être configurer via Spring comme n'importe quel Bean afin d'avoir accès par exemple à une base de données, ou autre. Notons par la même occasion que cet objet est un simple POJO et n'est aucunement lié à un framework spécifique.
Ce Bean n'hérite d'aucune classe, n'implémente aucune interface et il n'y a pas de standard défini en ce qui concerne le nom de la méthode qui représente la tâche.
L'étape suivant est de définir un Bean qui va justement faire la liaison entre un gestionnaire de tâches et notre précedent Bean afin de spécifier quelle méthode doit justement être utilisée :
Maintenant qu'on a définit "Quoi faire", il est nécessaire de spécifier "Quand le faire". Pour cela, il faut utiliser une classe ScheduledTimerTask :
Ici, une minutes d'attente ( 60 000 millisecondes ) avant le premièr lancement sera réalisée, et ensuite la tâche sera relancée toutes les 10 minutes ( 600 000 millisecondes ).
Une fois que le quand et le quoi sont défini, il est nécessaire de provoquer le lancement de cette tâche, et cela est géré par le TimerFactoryBean :
Cette fabrique possède une propriété scheduledTimerTasks de type liste de ScheduledTimerTask. Elle permet donc de gérer plusieurs tâches plannifiées.
| |||||
lien : JDK Timer support, Documentation officielle |
| ||
auteur : Righetto Dominique | ||
Pour intégrer EhCache et Spring afin de pouvoir injecter directement un bean Cache, on définit le bean ci-dessous dans un des fichiers de définition du contexte Spring :
On place la valeur de la propriété cacheName sur le nom d'une des définitions de cache spécifiées dans le fichier ehcache.xml.
Dans cette déclaration, on précise que le fichier de définition des caches se trouve dans le classpath au niveau de la racine (on pourrait également utiliser
classpath*:ehcache.xml pour lui indiquer de chercher ce fichier dans tous les classpath). On précise également que le CacheManager n'est pas partagé via la propriété shared.
Ensuite on peut injecter ce bean normalement dans tout bean qui en aurait besoin via :
| ||
lien : Site du projet EhCache |
| |||||
auteur : Gildas Cuisinier | |||||
Quartz est une API destinée à la création de tâches plannifiées. Elle possède certains avantages par rapport à la méthode basée sur le Timer :
Spring possède une intégration avec celle-ci, et permet l'exécution de tâches basées sur des POJOs.
La première étape est donc de créer une tâche, par la définition d'un bean :
La tâche est donc bien un POJO, et le nom de la méthode du job est au choix du développeur.
L'étape suivante est d'utiliser une classe fournie par Spring, qui va crée le JobDetail ( la tâche qui sera compréhensible par Quartz ) :
Il suffit donc de définir la propriete targetObject avec une référence vers le bean défini juste avant, et la propriété targetMethod avec le nom de la méthode à utiliser.
Une fois la tâche définie, il est nécessaire de définir le moment où elle doit être exécutée. Pour cela, deux classes existent : une pour une planification simple, une autre pour une planification plus complexe :
Le premier trigger est simple, il suffit de définir le moment de la première exécution et ensuite la période d'éxecution. Le deuxième est un peu plus complexe et se base sur une syntaxe Crontab : seconde minute heure jour-dans-le-mois mois jour-dans-la-semaine annee
La dernière étape est de définir un gestionnaire de planification :
| |||||
lien : Format des expressions Cron |
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2004 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.