SPRING Scheduler
UP ASI Bureau E204
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
1
Plan du Cours
– Introduction – @Scheduled Annotation – Fixed delay vs Fixed rate – Cron expression
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
2
Introduction
- La planification(scheduling) consiste à exécuter les tâches pendant une période
de temps spécifique.
- Spring Boot Scheduling est une fonctionnalité pratique qui nous permet de planifier
des tâches dans nos applications Spring Boot.
- Par exemple, si vous voulez que votre application exécute une tâche après un
intervalle fixe ou en fonction d'un calendrier.
- Le scheduler fait partie du module Core du framework Spring (Pas de
dépendances à ajouter dans le pom.xml).
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
Advertisement
3
@Scheduled Annotation
Spring Boot utilise l'annotation @Scheduled pour la planification des tâches.
Il faut respecter certaines règles lors de l'utilisation de cette annotation :
- Les méthodes doivent être sans paramètre.
- Le type de retour de la méthode doit être void.
- Pour activer la planification (scheduling), il faut ajouter l'annotation @EnableScheduling à la classe main.
@EnableScheduling
@SpringBootApplication
public class TpStockProjectApplication {
public static void main(String[] args) {
SpringApplication. run(TpStockProjectApplication. class, args);
}
}
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
4
@Scheduled Annotation
- Spring Boot permet de créer facilement une tâche de planification(scheduling
task).
Il suffit d'annoter la méthode avec l'annotation @Scheduled .
L'annotation @Scheduled définit la planification (par exemple, quand la méthode sera exécutée, etc.).
Nous pouvons passer certains paramètres à l'annotation pour personnaliser le comportement.
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
Advertisement
5
Fixed Rate
- Pour planifier un déclenchement de méthode à une date fixe, nous pouvons
utiliser le paramètre fixedRate dans l'annotation @Scheduled.
- Fixed Rate : permet à Spring d'exécuter la tâche à des intervalles périodiques,
même si la dernière exécution est en cours.
exécuter la méthode toutes les 60 secondes
@Scheduled ( fixedRate = 60000)
public void fixedRateMethod() {
system.out.println("Method with fixed Rate");
}
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
6
Fixed Delay
- Pour fixer un délai fixe entre la dernière exécution et le début de l'exécution
suivante, nous pouvons utiliser le paramètre fixedDelay .
- Ce paramètre compte le délai après l’exécution de la dernière invocation.
Les tâches sont déclenchées avec un retard de 60 secondes.
@Scheduled ( fixedDelay = 60000)
public void fixedDelayMethod() {
system.out.println("Method with fixed delay");
}
Advertisement
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
7
Cron expression
- L'expression Cron est une façon flexible et puissante pour planifier les tâches.
Jour(0-31)
Mois(0-12 or JAN-DEC)
Second(0-59)
Jour de semaine(0-7 or MON-SUN)
@Scheduled(cron = "*/60 * * * * *" )
public void cronMethod() {
system.out.println("Method with cron expression");
}
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
8
Exercice
1. @Scheduled(cron = "15 * * * * *") 2. @Scheduled(cron = "*/15 * * * * *") 3. @Scheduled(cron = "0/15 * * * * *") 4. @Scheduled(cron = "0 0/30 11 * * *") 5. @Scheduled(cron = "0 0 8 ? 4 ?") or (cron = "0 0 8 * 4 *") 6. @Scheduled(cron = « 0 0 9 14 2 SUN,TUE")
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
9
Conclusion
| field | Description |
|---|---|
| FixedRate | Nombre de millisecondes après l'heure de début de la dernière exécution de la méthode. => @retourne la période en millisecondes. |
| FixedDelay | Nombre de millisecondes après la dernière exécution de la méthode. @retourne le délai en millisecondes. |
| cron | Écrire le cron et définir le calendrier. Vous pouvez également spécifier le fuseau horaire. => @retourne une expression qui peut être analysée dans un plan de cron |
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
Advertisement
10
Travail à faire
Sur le même projet (magasin/stock) :
- Implémenter une méthode qui affiche le statut d’un stock pour chaque intervalle
de 60 secondes.(en cas de rupture de stock)
- Calculer les revenus du magasin (chiffre d’affaire) au début de chaque mois et
de chaque année (1er janvier). Le chiffre d’affaire correspond à la somme de
toutes les factures durant une période bien défini.
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
11
SPRING Scheduler
Si vous avez des questions, n’hésitez pas à nous contacter : Département Informatique UP Architectures des Systèmes d'Information
Bureau E204
© 2021-2022 – ESPRIT – Module Architecture des SI II Spring – Spring Scheduler
12