Le processus de configuration du quartz au printemps:
1. Package d'importation
Le package JAR requis par Quartz est déjà inclus dans le printemps, situé dans Quartz-all-1.6.1.jar Under / lib / quartz dans le répertoire après la décompression du printemps.
Il suffit de le copier sur le Web-Inf / Lib du projet.
2. Configurez web.xml pour charger le fichier de configuration du quartz lorsque le printemps démarre
<? xml version = "1.0" encoding = "utf-8"?> <web-app version = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema instance" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <! <param-name> contextConfiglocation </ param-name> <param-valeur> classpath: application - *. xml </ param-valeur> </ context-Param> <! - Spring écoute -> <ouciner> <écouteur-cllass> org.springframework.web.contex
3. Écrivez le fichier de configuration du quartz: application-quartz.xml En fait, ces configurations peuvent être écrites dans d'autres fichiers de configuration de printemps.
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: tx = "http://www.springframework.org/schema/tx" xsi: schemalation = "http://www.spring http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.xsd " id = "TestTaskBean" /> <! - Méthode de la tâche de stratégie de mise à jour chronométrée -> <bean id = "TestTasktimeMethod"> <propriété name = "TargetObject" ref = "TestTaskBean" /> <! - TargetMethod Method Nom pour configurer l'exécution de la synchronisation -> <propriété Name = "TargetMethod" Value = "ExeTreAction" /> <propriété Name = "Concurrent" Value = "FAWL" Mise à jour du déclencheur de stratégie -> <bean id = "TestTaskTrigger"> <propriété name = "jobdetail" ref = "syncpolicytasktimeMethod" /> <! - Exécuter toutes les 3 minutes de 0ème seconde-> <propriété name = "cronexpression" value = "0 0/3 * * *?" /> </ bean> <! - Liste de tâches personnalisée -> <bean id = "scheduler"> <propriété name = "Triggers"> <sist> <ref bean = "testtasktrigger" /> </sist> </ propriété> </ank> </bans>
4. Écrivez un test de classe Java qui exécute des tâches
package com.jp.task; import org.quartz.jobexecutionContext; import org.quartz.jobexecutionException; import org.springframework.scheduling.quartz.quartzjobbean; classe publique TestTask étend QuartzJobbean {Logger Log = Logger.GetLogger (PolityServiceTest.class); public void ExeteAction () {log.info ("Hello Quartz"); } @Override Protected void executeInternal (JobExEcutionContext Arg0) lève JobExEcutionException {}} 5. Tout le travail est prêt et exécuté. Fondamentalement, il a été signalé une erreur. Il s'agit d'une erreur de NoSuchMethod.
Cela est dû à la version basse de Commons-Collections.jar. Besoin aux collections communes-3.2.jar ou au-dessus.
À l'heure actuelle, vous recherchez une collection communes-3.2.jar dans le projet. Que se passe-t-il? Si vous le cherchez à nouveau, vous constaterez qu'il y a une collection communes-2.1.1.jar en hibernate.
Supprimez simplement Commons-Collections-2.1.1.jar.
PS: Cronexpression - Cron Expression Description
Le déclencheur Cron utilise une série de caractères spéciaux, comme indiqué ci-dessous:
Le caractère bombardement (/) indique la valeur incrémentielle. Par exemple, dans le champ de secondes, "5/15" signifie à partir de la cinquième seconde, une fois toutes les 15 secondes.
Marque de questions (?) Les caractères et les caractères de la lettre L ne sont disponibles qu'à la date du mois et de la date des champs de la semaine. Un point d'interrogation indique que ce champ ne contient pas de valeurs spécifiques. Par conséquent, si vous spécifiez une date dans le mois, vous pouvez insérer "?" dans la date dans la semaine pour indiquer que la valeur de la date dans la semaine n'a pas d'importance. Le caractère de la lettre l est l'abréviation du dernier. Mettez-le dans le champ de date intramonth, ce qui signifie qu'il devrait être exécuté le dernier jour du mois. Dans le champ Intraweek Date, si "l" existe seul, il est égal à "7", sinon il représente la dernière instance de la date intraweek dans le mois. Par conséquent, "0L" signifie qu'il devrait être exécuté le dernier dimanche du mois.
Le caractère de lettre (w) dans le champ Date dans le mois prévoit l'exécution de la journée de travail la plus proche de la valeur spécifiée. Mettre "1W" dans le champ Date du mois signifie que l'exécution est prévue dans le premier jour ouvrable du mois.
Le personnage du signe de livre (#) spécifie une instance de jour de travail spécifique pour un mois donné. Mettre "lun # 2" dans le champ Intraweek Date signifie planifier la tâche le deuxième lundi du mois.
Le caractère Asterisk (*) est un caractère générique qui signifie que le champ peut accepter les valeurs possibles.
Caractères spéciaux autorisés par les valeurs admissibles sur le terrain:
0-59 secondes, - * /
0-59, - * /
Heures 0-23, - * /
Date 1-31, - *? / LWC
Mois 1-12 ou Jan-Dec, - * /
Semaine 1-7 ou Sun-Sat, - *? / LC #
Année (facultative) Laisser vide, 1970-2099, - * /
Expression signifiant
"0 0 12 * *?" Déclenché à midi tous les jours
"0 15 10? * *" Déclenché à 10h15 tous les jours
"0 15 10 * *?" Déclenché à 10h15 tous les jours
"0 15 10 * *? *" Déclenché tous les jours à 10h15
"0 15 10 * *? 2005" déclenché à 10 h 15 tous les jours en 2005
"0 * 14 * *?" déclenche toutes les 1 minutes entre 14h et 14h59
"0 0/5 14 * *?" Déclenché toutes les 5 minutes entre 14h et 14h55 tous les jours
"0 0/5 14,18 * *?" Déclenché toutes les 5 minutes entre 14h55 et entre 18h55 et entre 18h55 et toutes les 5 minutes entre
"0 0-5 14 * *?" Déclenché toutes les 1 minutes entre 14h et 14h05 tous les jours
"0 10,44 14? 3 mer" se déclenche tous les mercredis à 14h10 et 14h44
"0 15 10? * Lun-fri" s'est déclenché de 10h15 du lundi au vendredi
"0 15 10 15 *?" Déclenché à 10 h 15 le 15 de chaque mois
"0 15 10 l *?" Déclenché à 10 h 15 le dernier jour de chaque mois
"0 15 10? * 6l" déclenché à 10 h 15 le dernier vendredi de chaque mois
"0 15 10? * 6L 2002-2005" déclenché à 10 h 15 le dernier vendredi de chaque mois de 2002 à 2005
"0 15 10? * 6 # 3" Décite tous les jours à 10 h 15 le troisième vendredi de chaque mois à 6 h
0 6 * * *
Toutes les deux heures
0 * / 2 * * *
Toutes les deux heures entre 23h et 8h, 8h
0 23-7 / 2, 8 * * *
Le 4 de chaque mois et du lundi au mercredi chaque semaine à 11 h.
0 11 4 * 1-3
1er janvier à 4 h
0 4 1 1 *