Dans le contexte d'application des outils de développement et de test, j'entends souvent des collègues dire qu'ils doivent effectuer une tâche chronométrée pour effectuer un traitement de journal ou un nettoyage de données, y compris une logique de calcul d'entreprise complexe. Lors du choix d'une tâche chronométrée, comment peuvent-ils rapidement l'implémenter et choisir une méthode plus appropriée pour vous? J'ai collecté et organisé certaines méthodes pour mettre en œuvre des tâches planifiées ici. J'espère que cela peut aider les étudiants qui commencent tout juste à effectuer des tâches programmées. Veuillez corriger toute mauvaise écriture.
Il existe trois façons de résumer les tâches de synchronisation de base Java:
1.1 Créez un thread, puis laissez-le s'exécuter dans la boucle while, et réalisez l'effet de la tâche de synchronisation via la méthode de sommeil;
1.2 L'utilisation de la minuterie et de la tricotage présente les avantages suivants par rapport à la première méthode:
1.3 Le ScheduleDexecutorService est introduit comme une classe d'outils simultanée de java.util.concurrent. Il s'agit de la méthode de mise en œuvre de la tâche chronométrée idéale. Par rapport aux deux méthodes précédentes, il présente les avantages suivants:
Il existe trois façons de résumer les tâches chronométrées printanières:
2.1 ScheduledTimertask: SpringledTimertAsk de Spring définit le cycle de fonctionnement d'une tâche de minuterie. Malheureusement, vous pouvez spécifier la fréquence de l'exécution de la tâche, mais vous ne pouvez pas spécifier exactement quand il s'exécute, ce qui nécessite l'utilisation du deuxième quartz pour la planification des tâches;
Créer une tâche métier, déclarée dans le fichier de configuration de Spring;
Dans le fichier de configuration de Spring, configurez ScheduledTimertAsk et associez l'instance de tâche personnalisée;
Démarrer la minuterie, TimerFactoryBean de Spring est responsable du démarrage de la tâche de synchronisation
2.2 Utilisation du quartz:
Tout d'abord, définissez les tâches de logique commerciale comme d'habitude:
Déclarer et configurer la méthode de déclenchement de la planification des travaux au printemps
Ici, il existe deux types de déclencheurs de travail pour le quartz, à savoir
org.springframework.scheduling.quartz.simpletriggerbean
org.springframework.scheduling.quartz.crontriggerbean
Le premier SimpleTriggerBean prend en charge uniquement les tâches d'appel à une certaine fréquence, comme l'exécution une fois de temps en temps.
<bean id = "SimpleTrigger"> <propriété name = "jobdetail" ref = "myJob" /> <propriété name = "startDelay" value = "0" /> <! - Une fois que l'usine de dépasse
Le deuxième type de CronTriggerBean prend en charge l'exécution une fois à un moment spécifié, comme l'exécution une fois à 12h00 chaque jour, comme configuré ci-dessus;
Configurer l'usine de répartition
org.springframework.scheduling.quartz.schedulerfactoryBean, le code est comme ci-dessus;
Il suffit de lancer votre application
2.3 Utilisation de la tâche Spring
L’outil de tâche chronométrée de Spring, Spring Task, peut le comparer à un quartz léger, et il est très simple à utiliser. Il ne nécessite pas de packages supplémentaires à l'exception des packages liés au printemps et prend en charge deux types d'annotations et de fichiers de configuration:
Étape 1: Écrivez la classe de tâches; TaskJob, Method Job1 - La deuxième étape du code omettant: Ajouter un espace de noms et une description dans l'en-tête du fichier de configuration Spring
<Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: task = "http://www.springframework.org/schema/task" xsi: schemalation = "http://www.spring http://www.springframework.org/schema/task/spring-task-3.0.xsd ">
Étape 3: Définissez des tâches spécifiques dans le fichier de configuration de Spring
<tâche: tâches planifiées> <tâche: planifié ref = "taskjob" method = "job1" cron = "0 * * * *?" /> <task: tasks scheduled> <context: composant-scan buase-package = "com.alibaba.mytask" />
Description: Le paramètre REF spécifie la classe de tâches, la méthode spécifie la méthode qui doit être exécutée, les expressions Cron et Cronexpression, la méthode d'écriture spécifique ne sera pas introduite ici, et le <Context: Component-Scan Base-Package = "com.alibaba.mytask" /> annotation de scan à ressort est utilisé.
Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.