Einführung
Quarzt ist ein Open -Source -Projekt, das in einem Projekt regelmäßig Aufgaben ausführt. Quartz ist ein weiteres Open -Source -Projekt im Bereich der Jobplanung. Es kann mit J2EE- und J2SE -Anwendungen kombiniert oder separat verwendet werden. Hier führen wir Beispiele für die Integration in den Frühling ein.
Da Spring Quarzt integriert hat, müssen wir es nur konfigurieren.
Download JAR -Paket
Sie können das JAR-Paket direkt unter http://www.quartzdeschuler.org/ Quarzts offizielle Website herunterladen
Es kann über Maven gebaut werden, denken Sie daran, das für den Frühling erforderliche Glas vorzustellen
<!-- Introducing the corresponding dependencies of quartz--> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version> 2.2.3 </Version> </abhängig>
Konzept
Aufgabenklasse: Das heißt eine Klasse, die in regelmäßigen Abständen eine Codeausführung erfordert.
Jobdetail: Die Details zur Konfiguration der Aufgabenklasse, dh die Methode zur Injektion der Aufgabenklasse und die Angabe der Task -Klasse, sind ein ausführbarer Job, der an sich möglicherweise staatlich sein kann.
MyTigger: Der Auslöser repräsentiert die Konfiguration eines Planungsparameters und konfiguriert die Anrufzeit.
Scheduler: Es ist ein Scheduler -Container, der viele Jobdetails und Auslöser enthalten kann. Wenn der Container gestartet wird, wird jedes JobDetail in IT Schritt für Schritt nach dem Auslöser automatisch ausgeführt.
Konfigurationsmethode
Schreiben Sie zuerst eine Aufgabenklasse
public class myjob {public void Job () {System.out.println (new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"). Format (neues Datum ()) + ": Aufgabenausführung"); }}Springen Sie dann, um die Bohne der Task -Klasse zu konfigurieren
<bean id = "myjob" />
Konfigurieren Sie JobDetail, Inject Task -Klassen und Aufgabenklassen Methoden
<bean id = "JobDetail"> <!-Inject Zielobjekt-> <Eigenschaft name = "targetObject" ref = "myjob"/> <!-Inject Ziel-Methode-> <Eigenschaft name = "targetMethod" value = "Job"/> </bean>
Konfigurieren von Triggern
<!-Konfigurieren Sie Trigger-> <bean id = "myTigger"> <!-Task Details Objekt-> <Eigenschaft name = "JobDetail" ref = "JobDetail"/> <!-CRON-Ausdruck injizieren. Mais überleben in der folgenden </property> </bean>
Konfigurieren Sie schließlich die Versandfabrik und injizieren Sie den konfigurierten Auslöser
<!-konfigurieren
Zu diesem Zeitpunkt wird die Konfiguration abgeschlossen und die Zeitaufgaben können ausgeführt werden.
Ausführungsergebnisse
Cron -Ausdruck
Mais wird verwendet, um die Zeitplanungszeit der Aufgabe zu steuern, und ist in Trigger konfiguriert. Das Folgende ist die grundlegende Syntax des Maisausdrucks. Wenn es zu kompliziert aussieht, wird der Mais -Syntaxgenerator im Internet http://cron.qqe2.com/ bereitgestellt. Es kann automatisch Maisausdrücke erzeugen, indem die Bedingungen angegeben werden.
Unten finden Sie die Bedeutungen, die durch sieben * dargestellt werden
Asterisk: * repräsentiert jederzeit, was darauf hinweist, dass Sie alle rechtlichen Werte in diesem Bereich aufnehmen möchten.
* * * * * * bedeutet, dass es jeden Moment auslöst
0 * 17 * * ? : Inspire Trigger jede Minute von 17 bis 17:59 Uhr jeden Tag. Es hört um 17:59 Uhr auf, weil der Wert 17 in der Stundendomäne ist, um 18 Uhr, die Stunde 18, also ignoriere ich diesen Auslöser bis 17 Uhr am nächsten Tag.
Fragezeichen (?): Die? Das Zeichen kann nur in den täglichen und wöchentlichen Domänen verwendet werden, kann jedoch nicht gleichzeitig für diese beiden Domänen verwendet werden. Kannst du denken? Der Charakter ist "Es ist mir egal, welcher Wert auf dem Feld ist." Dies unterscheidet sich von einem Sternchen, der jeden Wert auf dem Feld angibt. ? bedeutet, dass Sie keinen Wert für dieses Feld angeben. Wenn Sie einen Wert für eines dieser beiden Felder angeben, müssen Sie eine einsetzen? auf dem anderen Wortwert.
0 10,44 14 ? 3 WEB : wird jeden Mittwoch im März um 14.10 Uhr und 14.44 Uhr ausgelöst.
Komma (,): Wird verwendet, um eine Liste von Werten in einem Feld anzugeben. Wenn Sie beispielsweise die Werte von 0,15,30,45 im zweiten Feld unter Verwendung von Werten 0,15,45 ausgelöst werden, wird alle 15 Sekunden ein Trigger ausgelöst.
0 0,15,30,45 * * * ? : Trigger wird alle Viertelstunde ausgelöst.
Backslash (/): (/) wird für den inkrementellen Zeitplan verwendet. Wir haben nur Kommas verwendet, um Inkremente alle 15 Minuten darzustellen, aber wir können sie auch als 0/15 schreiben.
0/15 0/30 * * * ? : Trigger wird alle 15 Sekunden an beiden Stunde und halben Punkten ausgelöst.
Medium Score (-): Medium Score (-) wird verwendet, um einen Bereich anzugeben. Zum Beispiel bedeutet 3-8 auf der Stundendomäne "3, 4, 5, 6, 7 und 8 Punkte". Die Werte der Domäne erlauben nicht das Zurückspulen, sodass Werte wie 50-10 nicht zulässig sind.
0 45 3-8 ? * * :: Ausgelöst von 3 bis 45 Uhr um 8 Uhr.
Buchstabe l): L gibt den letzten Wert an, der auf einem Feld zulässig ist. Es wird nur von den täglichen und wöchentlichen Bereichen unterstützt. Wenn es im Tagesbereich verwendet wird, stellt es den letzten Tag des Monats dar, der in der Monatsdomäne angegeben ist. Wenn der Buchstaben L in der Wochendomäne verwendet wird, wobei der letzte Tag der Woche, der Samstag (oder die Nummer 7) ist, angibt, können Sie eine Nummer verwenden, um L die letzte Woche des Monats X.
0 0 8 L * ? : Ausgelöst am letzten Tag eines jeden Monats um 8:00 Uhr ausgelöst
0 59 23 ? * L : Ausgelöst am letzten Samstag im Monat um 11:59 Jahre
0 0 12 ? * 2L : Der letzte Montag eines jeden Monats löst sich aus (die Zahl ist mit L angeschlossen, um die letzte Woche des Monats x darzustellen.
Brief (W): Wochentag (Mon-Fr) und kann nur im täglichen Bereich verwendet werden. Es wird verwendet, um den nächsten Wochentag zum angegebenen Tag festzulegen
Hack -Zeichen ( #): Das # Zeichen kann nur in der peripheren Domäne verwendet werden. Es wird verwendet, um an welchem Wochentag in einem bestimmten Monat. Wenn Sie beispielsweise den Wert des wöchentlichen Feldes auf 6 #3 angeben, bedeutet dies den dritten Freitag eines bestimmten Monats (6 = Freitag, #3 bedeutet die dritte Woche des Monats).
Beispiel
"0012 **?" Jeden Tag um 12 Uhr "01510? **" ausgelöst werden jeden Tag um 10:15 Uhr "01510 **?" Jeden Tag um 10:15 Uhr "01510 **?*" Ausgelöst. Jeden Tag um 10:15 Uhr im Jahr 2005 ab 14.59 Uhr jeden Tag "00/514 **" ausgelöst? Jeden Tag um 14:00 Uhr von 14.00 bis 14.55 Uhr jeden Tag "00/514,18 **?" Jeden Tag um 14:00 Uhr von 14.00 bis 14.55 Uhr und jeden Tag ab 18:55 Uhr und jeden Tag von 18:55 bis 18:55 Uhr jeden Tag jeden Tag jede 1 Minute durch "010.4414? "015 Uhr am 15. des Monats" "01510L*?" "015 Uhr am letzten Tag des Monats" "01510?
Zusammenfassen
Das Obige dreht sich alles um die geplanten Aufgaben in diesem Artikel. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!