Lorsque vous rédigez des applications Spring Boot, vous rencontrerez de tels scénarios, tels que: vous devez envoyer régulièrement des messages texte, des e-mails et d'autres opérations, et vous pouvez également vérifier et surveiller certains drapeaux, paramètres, etc.
Créer une tâche chronométrée
Il est très simple d'écrire une tâche chronométrée dans Spring Boot. Les exemples suivants sont utilisés pour introduire comment créer une tâche chronométrée dans Spring Boot, afin de sortir l'heure actuelle toutes les 5 secondes.
Ajouter une annotation @enablesCeduling à la classe principale de Spring Boot pour activer la configuration des tâches de synchronisation
import org.springframework.boot.springApplicationImport org.springframework.boot.autoconfigure.springbootapplicationmport org.springframework.scheduling.annotation.enablesCheDuling / *** créé par http://quanke.name sur 2018/1/12. * / @ SpringbootApplication @ ActiveSchedulingClass ApplicationFun Main (Args: Array <string>) {SpringApplication.Run (application :: class.java, * args)}Créer une classe de mise en œuvre de tâches chronométrée
import org.apache.commons.logging.logfactoryImport org.springframework.scheduling.annotation.schedulemport org.springframework.sterreoteotype.comport java.text.simpledateformatimport java.util. 2018/1/12.*/@componentclass scheduledTasks {val log = logfactory.getLog (scheduledtasks :: class.java) !! private val dateFormat = SimpledateFormat ("hh: mm: ss") @ scheduled (fixeDrate = 1000) fun rapportstime () {log.info ("currentTime, $ {dateformat.format (date ())} ")}}Exécutez le programme et vous pouvez voir la sortie suivante dans la console. La tâche de synchronisation commence à fonctionner normalement.
2018-01-21 23: 09: 01.112 Info 23832 - [Main] nqkotlin.chaper11_8_1.applicationkt: a démarré l'applicationkt en 8,024 secondes (JVM en cours d'exécution pour 8.724)
2018-01-21 23: 09: 02.112 Info 23832 - [Pool-2-thread-1] nqkchaper11_8_1.task.scheduledTasks: Heure actuelle, 23:09:02
2018-01-21 23: 09: 03.042 Info 23832 - [Pool-2-thread-1] nqkchaper11_8_1.task.scheduledTasks: Heure actuelle, 23:09:03
2018-01-21 23: 09: 04.042 Info 23832 - [Pool-2-thread-1] nqkchaper11_8_1.task.scheduledTasks: Heure actuelle, 23:09:04
2018-01-21 23: 09: 05.042 Info 23832 - [Pool-2-thread-1] nqkchaper11_8_1.task.ScheduledTasks: Heure actuelle, 23:09:05
@Scheduleddetails
Dans l'exemple d'introduction ci-dessus, l'annotation @scheduled (fixerate = 1000) est utilisée pour définir les tâches exécutées toutes les 1 secondes. L'utilisation de @Scheduled peut être résumé de la manière suivante:
L'annotation @scheduled est unique. Si plusieurs threads sont nécessaires, veuillez ajouter @async
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.