Introduction
Quarzt est un projet open source qui exécute régulièrement des tâches dans un projet. Quartz est un autre projet open source dans le domaine de la planification des travaux. Il peut être combiné avec des applications J2EE et J2SE ou utilisé séparément. Ici, nous introduisons des exemples d'intégration avec le printemps.
Parce que Spring a intégré Quarzt, nous n'avons qu'à le configurer.
Télécharger le package JAR
Vous pouvez télécharger directement le package JAR sur http://www.quartz-scheduler.org/ site officiel de Quarzt
Il peut être construit via Maven, n'oubliez pas d'introduire le pot requis pour le printemps
<! - Présentation des dépendances correspondantes du quartz -> <dependency> <proupId> org.quartz-sccheler </rom grouped> <etifactid> quartz </ artifactid> <werover> 2.2.3 </pridem <version> 2.2.3 </DERNIERS> </DENDENCENCE>
concept
Classe de tâches: c'est-à-dire une classe qui nécessite l'exécution de code à intervalles réguliers.
Jobdetail: les détails de la configuration de la classe de tâches, c'est-à-dire que la méthode d'injection de la classe de tâches et de spécification de la classe de tâches, est un travail exécutable qui peut être avec état en soi.
MyTrigger: le déclencheur représente la configuration d'un paramètre de planification, configurant l'heure d'appel.
Planificateur: Il s'agit d'un conteneur de planificateur, qui peut contenir de nombreux emplois et déclencheurs. Lorsque le conteneur est démarré, chaque travail de travail sera exécuté automatiquement étape par étape en fonction du déclencheur.
Méthode de configuration
Écrivez d'abord une classe de tâches
classe publique myJob {public void job () {System.out.println (new SimpledateFormat ("Yyyy-mm-dd hh: mm: ss"). format (new Date ()) + ": Task Execution"); }}Puis ressort pour configurer le haricot de la classe de tâches
<bean id = "myJob" />
Configurer JobDetail, injecter des classes de tâches et des méthodes de classes de tâches
<bean id = "jobdetail"> <! - Inject Target Object -> <propriété name = "TargetObject" ref = "myJob" /> <! - Inject Target Method -> <propriété name = "TargetMethod" value = "Job" /> </ Bean>
Configurer les déclencheurs
<! - Configurer le déclencheur -> <bean id = "mytrigger"> <! - Inject Détails de la tâche Object -> <propriété name = "jobDetail" ref = "jobDetail" /> <! - Inject Cron Expression, spécifiez le point de déclenchement -> <propriété name = "Cronexpression"> <value> / 5 * * * *? </value> // indique qu'il exécute tous les cinq secondes. Le maïs survivra dans les </proprime> </ban> suivants suivants
Enfin, configurez l'usine de répartition et injectez le déclencheur configuré
<! - Configurez la Dispatch Factory -> <bean id = "SchedulerFactoryBean"> <! - Inject Trigger -> <propriété name = "déclencheurs"> <st> <ref bean = "mytrigger" /> </sist> </proprie> </ank>
À ce stade, la configuration est terminée et les tâches de synchronisation peuvent être effectuées.
Résultats de l'exécution
Expression cron
Le maïs est utilisé pour contrôler l'heure de planification de la tâche et est configuré dans le déclencheur. Ce qui suit est la syntaxe de base de l'expression du maïs. S'il semble trop compliqué, le générateur de syntaxe de maïs est fourni sur Internet http://cron.qqe2.com/. Il peut générer automatiquement des expressions de maïs en spécifiant les conditions.
Voici les significations représentées par sept *
ASTERISK: * représente à tout moment, ce qui indique que vous souhaitez inclure toutes les valeurs juridiques sur ce champ.
* * * * * * signifie qu'il déclenchera chaque instant
0 * 17 * * ? : Inspire déclenche toutes les minutes de 17 h à 17 h 59 tous les jours. Il s'arrête à 17 h 59 car la valeur est de 17 dans le domaine des heures, à 18 h, l'heure devient 18, donc j'ignore ce déclencheur jusqu'à 17 h le lendemain.
Point d'interdiction (?): Le? Le signe ne peut être utilisé que dans les domaines quotidiens et hebdomadaires, mais ne peut pas être utilisé simultanément sur ces deux domaines. Pouvez-vous penser? Le personnage est "Je me fiche de la valeur sur le terrain." Ceci est différent d'un astérisque, qui indique chaque valeur sur le terrain. ? signifie que vous ne spécifiez pas de valeur pour ce champ. Si vous spécifiez une valeur pour l'un de ces deux champs, vous devez mettre un? sur l'autre valeur de mot.
0 10,44 14 ? 3 WEB : est déclenché à 14h10 et 14h44 tous les mercredis de mars.
Comma (,): est utilisé pour spécifier une liste de valeurs dans un champ. Par exemple, l'utilisation de valeurs 0,15,30,45 dans le deuxième champ signifie qu'un déclencheur est déclenché toutes les 15 secondes.
0 0,15,30,45 * * * ? : Le déclencheur est déclenché chaque quart d'heure.
Barbancière (/): (/) est utilisé pour le calendrier incrémentiel. Nous venons d'utiliser des virgules pour représenter les incréments toutes les 15 minutes, mais nous pouvons également les écrire comme 0/15.
0/15 0/30 * * * ? : Le déclencheur est déclenché toutes les 15 secondes à la fois aux points de l'heure et du demi-point.
Score moyen (-): le score moyen (-) est utilisé pour spécifier une plage. Par exemple, 3-8 sur le domaine Hour signifie "3, 4, 5, 6, 7 et 8 points". Les valeurs du domaine ne permettent pas le rembobinage, donc les valeurs comme 50-10 ne sont pas autorisées.
0 45 3-8 ? * * :: déclenché de 3 h à 45 h à 8 h.
Lettre (l): l indique la dernière valeur autorisée sur un champ. Il n'est soutenu que par les domaines quotidiens et hebdomadaires. Lorsqu'il est utilisé dans le domaine du jour, il représente le dernier jour du mois spécifié dans le domaine du mois. Lorsque la lettre L est utilisée dans le domaine de la semaine, indiquant le dernier jour de la semaine, qui est samedi (ou le numéro 7), vous pouvez utiliser un numéro pour connecter L pour représenter la dernière semaine du mois X.
0 0 8 L * ? : Déclenché à 8h00 le dernier jour de chaque mois
0 59 23 ? * L : déclenché à 11h59 le dernier samedi de chaque mois
0 0 12 ? * 2L : le dernier lundi de chaque mois déclenche (le numéro est connecté à L pour représenter la dernière semaine du mois x)
Lettre (w): en semaine (lun-vendrea), et ne peut être utilisée que dans le domaine quotidien. Il est utilisé pour spécifier le jour de semaine le plus proche de la journée spécifiée
Sign hack (#): le caractère # ne peut être utilisé que dans le domaine périphérique. Il est utilisé pour spécifier le jour de la semaine dans un mois spécifié. Par exemple, si vous spécifiez la valeur du champ hebdomadaire à 6 # 3, cela signifie le troisième vendredi d'un certain mois (6 = vendredi, # 3, la troisième semaine du mois).
Exemple
"0012 **?" Déclenché à midi tous les jours "01510? **" déclenché à 10h15 tous les jours "01510 **?" Déclenché à 10h15 tous les jours "01510 **? *" Déclenché à 10h15 tous les jours "01510 **? 2005" déclenché à 10h15 tous les jours "0 * 14 **?" Déclenché à 10h15 tous les jours en 2005 à partir de 14h59 tous les jours "00/514 **?" Déclenché à 14h00 tous les jours de 14h00 à 14h55 tous les jours "00 / 514,18 **?" Déclenché à 14h00 tous les jours de 14h00 à 14h55 et toutes les 5 minutes tous les jours à partir de 18h55 et tous les 18h55 à 18h55 tous les jours tous les 1 minute déclenchée par "010 4414? 3 ans" Le mercredi de mars chaque année à 14h10 et 14h44 le mercredi de mars de l'année à 10h15 "015 h le 15 du mois" "01510L *?" "015 AM le dernier jour du mois" "01510? * 6L" Le dernier vendredi du mois à 10h15 le dernier vendredi du mois "01510? * 6L2002-2005" Le dernier vendredi du mois de 2002 à 2005 à 10h25 du matin le dernier vendredi du mois "01510?
Résumer
Ce qui précède concerne les tâches programmées de Quarzt dans cet article, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!