Heim Java javaLernprogramm Beispiel für die Implementierung von Spring+Quarz

Beispiel für die Implementierung von Spring+Quarz

Jun 21, 2017 am 09:28 AM
spring 任务 bezogen auf 定时

Es gibt ein Problem im Projekt meines Freundes. Seine Seite basiert auf der Spring-Architektur und hat eine relativ einfache Aufgabe, die eine geplante Ausführung erfordert. Nachdem er seine Bedürfnisse verstanden hatte, schlug er eine relativ einfache Spring+Quarz-Implementierung vor.

Beachten Sie, dass in diesem Artikel nur erläutert wird, wie die einfachsten geplanten Aufgaben im Rahmen des abgeschlossenen Spring-Projekts erledigt werden.

Der erste Schritt besteht darin, die Spring-Architektur kennenzulernen, die sehr interessant und interessant ist. Der Effekt des freien Ein- und Aussteckens von Funktionsmodulen kann erzielt werden. Das Engineering-Projekt basiert auf der MAVEN-Paketabhängigkeitsverwaltung. Listen Sie daher die benötigten Abhängigkeitspaketreferenzen auf:

 1 <!-- 定时器依赖 开始 --> 2 <dependency> 3 <groupId>org.springframework</groupId> 4 <artifactId>spring-context-support</artifactId> 5 <version>4.0.2.RELEASE</version> 6 </dependency> 7  8   9 10 <dependency>11 <groupId>org.quartz-scheduler</groupId>12 <artifactId>quartz</artifactId>13 <version>2.2.1</version>14 </dependency>15 <!-- 定时器依赖 结束 -->
Nach dem Login kopieren

Dies hängt natürlich von der entsprechenden Spring-Versionsübereinstimmung ab. Unser Projekt hier ist 4.0.2. Das vorherige Paket spring-context-support wird hauptsächlich als Komponente für die Kommunikation und Verwaltung zwischen Spring und Quartz verwendet. Wenn es auskommentiert ist, wird ein Fehler wie dieser gemeldet

in der MAVEN-Konfiguration Nachdem wir die Pakete fertiggestellt haben, die hinzugefügt werden müssen (andere Pakete werden hier vorerst nicht besprochen, dieser Artikel behandelt nur die Konfiguration im Rahmen des vollständigen Spring-Projekts), können wir damit beginnen, Funktionsmodule für geplante Aufgaben hinzuzufügen dieses Projekt.

Der zweite Schritt besteht darin, beim Ursprung des Webprojekts zu beginnen, den Änderungen in web.xml. Da die Spring-Konfigurationsdatei des ursprünglichen Projekts Spring-mvc.xml war, habe ich die Konfigurationsdatei der geplanten Aufgabe in spring-time.xml geändert. Auf diese Weise kann beim Start die gleiche Scan-Konfiguration gelesen werden. Der spezifische Code lautet wie folgt:

1 <context-param>2         <param-name>contextConfigLocation</param-name>3         <param-value>classpath:spring-*.xml</param-value>4     </context-param>
Nach dem Login kopieren

Dann zeige ich Ihnen meine Projektstruktur:

Mit dieser Konfiguration weiß das Projekt, wie es aufzurufen ist. Nachdem wir diesen Schritt erreicht haben, können wir weitermachen.

Der dritte Schritt besteht darin, die Kernkonfiguration von spring-timer.xml abzuschließen, eine geplante Aufgabe. In dieser Dateikonfiguration erledigen wir hauptsächlich drei Dinge:

1. Konfigurieren Sie die Starteinstellungen bezüglich des verzögerten Ladens (um es kurz auszudrücken: Das Initialisieren einer bestimmten Variablen auf Null ist beispielsweise auch eine Art verzögertes Laden. Das Dies bedeutet, dass der Dienst nach dem Start nur dann instanziiert wird, wenn er tatsächlich aufgerufen wird. Dies kann nur logischen Speicherplatz sparen, kann aber auch dazu führen, dass das Problem mit einer langen Verzögerung erkannt wird . , wird hier nicht im Detail erklärt) und die Konfiguration des Triggers;

2. Die Konfiguration von quartz-2.x, einschließlich des Namens des Jobs, der nach dem Auslösen der geplanten Aufgabe aufgerufen werden soll , und der Maisausdruck (d. h. der geplante Ausdruck steuert den Grund, warum das Programm wiederholt ausgeführt wird. Dieses Mal werde ich den Inhalt zum Cron-Ausdruck später hinzufügen).

3. Konfigurieren Sie den Inhalt des Jobs und des spezifische Klasse, die dem Job entspricht.

Nachdem die Erklärung des logischen Prozesses abgeschlossen ist, finden Sie hier den Code:

 1 <?xml version="1.0" encoding="UTF-8"?>   2 <beans xmlns="http://www.springframework.org/schema/beans"   3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  4     xmlns:p="http://www.springframework.org/schema/p"   5     xsi:schemaLocation="http://www.springframework.org/schema/beans  
 6      ">   7    8         <!-- 启动触发器的配置开始 -->   9     <bean name="startQuertz" lazy-init="false" autowire="no"  10         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  11         <property name="triggers">  12             <list>  13                 <ref bean="myJobTrigger" />  14             </list>  15         </property>  16     </bean>  17     <!-- 启动触发器的配置结束 -->  18   19     <!-- 调度的配置开始 -->  20     <!--  21         quartz-1.8以前的配置   
22     <bean id="myJobTrigger"  
23         class="org.springframework.scheduling.quartz.CronTriggerBean">  
24         <property name="jobDetail">  
25             <ref bean="myJobDetail" />  
26         </property>  
27         <property name="cronExpression">  
28             <value>0/1 * * * * ?</value>  
29         </property>  
30     </bean>  
31     -->  32     <!-- quartz-2.x的配置 -->  33     <bean id="myJobTrigger"  34         class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  35         <property name="jobDetail">  36             <ref bean="myJobDetail" />  37         </property>  38         <property name="cronExpression">  39         40         <value>0/10 * *  * * ?</value>41           <!--   <value>1 52 * * * ?</value>  --> 42         </property>  43     </bean>  44     <!-- 调度的配置结束 -->  45   46     <!-- job的配置开始 -->  47     <bean id="myJobDetail"  48         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  49         <property name="targetObject">  50             <ref bean="myJob" />  51         </property>  52         <property name="targetMethod">  53             <value>work</value>  54         </property>  55     </bean>  56     <!-- job的配置结束 -->  57   58     <!-- 工作的bean -->  59     <bean id="myJob" class="com.tec.kevin.quartz.jobTest" />  60   61 </beans>
Nach dem Login kopieren
Nach Abschluss der Konfiguration der Konfigurationsdatei hier , Sie können mit dem nächsten Schritt beginnen, die spezifische Geschäftslogik wird implementiert

Der vierte Schritt ist die Implementierung der spezifischen Geschäftslogik.

Was hier zu beachten ist, sind die beiden Punkte im Bild unten

Das Bild oben ist spezifisch Der Name der Geschäftsimplementierungsklasse muss mit der geplanten Aufgabenkonfiguration in der folgenden Abbildung übereinstimmen.

Nach Abschluss der oben genannten Schritte können wir mit dem Projekt beginnen, um den tatsächlichen Effekt zu sehen.

Wie Sie hier sehen können, wird die geplante Aufgabe gemäß unserer vorherigen Konfiguration alle 10 Sekunden ausgeführt. 0/10 * * * * ?                                                                                                                                                                                                                                                                    Es wurde zweimal gleichzeitig ausgeführt. Der später gefundene Grund war, dass bei der Konfiguration von web.xml die geplante Aufgabe wiederholt konfiguriert wurde, was dazu führte, dass sie mehrmals ausgeführt wurde. Wenn Sie auf diese Situation stoßen, können Sie sich auf meine Lösung beziehen.

Als nächstes folgen zwei Artikel, einer befasst sich mit einer einfacheren Implementierungsmethode zum Schreiben geplanter Aufgaben und der andere erklärt Cron-Ausdrücke.

Das obige ist der detaillierte Inhalt vonBeispiel für die Implementierung von Spring+Quarz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So schließen Sie die Horrorkorridor-Mission in Goat Simulator 3 ab So schließen Sie die Horrorkorridor-Mission in Goat Simulator 3 ab Feb 25, 2024 pm 03:40 PM

Der Terrorkorridor ist eine Mission in Goat Simulator 3. Wie können Sie die detaillierten Räumungsmethoden und entsprechenden Prozesse meistern und die entsprechenden Herausforderungen dieser Mission meistern? Leitfaden zum Erlernen verwandter Informationen. Goat Simulator 3 Terror Corridor Guide 1. Zuerst müssen die Spieler zum Silent Hill in der oberen linken Ecke der Karte gehen. 2. Hier sehen Sie ein Haus mit der Aufschrift „RESTSTOP“ auf dem Dach. Um dieses Haus zu betreten, müssen die Spieler die Ziege bedienen. 3. Nachdem wir den Raum betreten haben, gehen wir zunächst geradeaus und biegen dann rechts ab. Hier befindet sich am Ende eine Tür, von hier aus gehen wir direkt hinein. 4. Nach dem Betreten müssen wir auch zuerst vorwärts gehen und dann rechts abbiegen. Wenn wir hier die Tür erreichen, müssen wir umkehren und sie finden.

So bestehen Sie die Imperial Tomb-Mission im Goat Simulator 3 So bestehen Sie die Imperial Tomb-Mission im Goat Simulator 3 Mar 11, 2024 pm 01:10 PM

Goat Simulator 3 ist ein Spiel mit klassischem Simulationsspiel, das es den Spielern ermöglicht, den Spaß einer Gelegenheits-Action-Simulation in vollen Zügen zu genießen. Das Spiel hat auch viele spannende Spezialaufgaben. Unter anderem erfordert die Goat Simulator 3 Imperial Tomb-Aufgabe, dass die Spieler den Glockenturm finden. Einige Spieler sind sich nicht sicher, wie sie die drei Uhren gleichzeitig bedienen sollen. Hier ist die Anleitung zur Tomb of the Tomb-Mission in Goat Simulator 3. Die Anleitung zur Tomb of the Tomb-Mission in Goat Simulator 3 besteht darin, die Glocken zu läuten in Ordnung. Detaillierte Schritterweiterung 1. Zuerst müssen die Spieler die Karte öffnen und zum Wuqiu-Friedhof gehen. 2. Gehen Sie dann hinauf zum Glockenturm. Dort befinden sich drei Glocken. 3. Folgen Sie dann 222312312 in der Reihenfolge vom größten zum kleinsten, um sich mit dem wütenden Klopfen vertraut zu machen. 4. Nachdem Sie das Klopfen abgeschlossen haben, können Sie die Mission abschließen und die Tür öffnen, um das Lichtschwert zu erhalten.

So führen Sie die Steve-Rettungsmission im Goat Simulator 3 durch So führen Sie die Steve-Rettungsmission im Goat Simulator 3 durch Feb 25, 2024 pm 03:34 PM

Steve zu retten ist eine einzigartige Aufgabe in Goat Simulator 3. Was genau muss getan werden, um sie abzuschließen? Diese Aufgabe ist relativ einfach, aber wir müssen aufpassen, dass wir die Bedeutung von Steve nicht falsch verstehen Simulator 3-Aufgabenstrategien können Ihnen dabei helfen, verwandte Aufgaben besser zu erledigen. Goat Simulator 3 Rescue Steve Mission Strategie 1. Kommen Sie zuerst zur heißen Quelle in der unteren rechten Ecke der Karte. 2. Nachdem Sie an der heißen Quelle angekommen sind, können Sie die Aufgabe auslösen, Steve zu retten. 3. Beachten Sie, dass es in der heißen Quelle einen Mann gibt, der zwar Steve heißt, aber nicht das Ziel dieser Mission ist. 4. Finden Sie in dieser heißen Quelle einen Fisch namens Steve und bringen Sie ihn an Land, um diese Aufgabe abzuschließen.

Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Feb 01, 2024 pm 09:18 PM

Im Jahr 2023 ist die KI-Technologie zu einem heißen Thema geworden und hat enorme Auswirkungen auf verschiedene Branchen, insbesondere im Programmierbereich. Die Bedeutung der KI-Technologie wird den Menschen zunehmend bewusst, und die Spring-Community bildet da keine Ausnahme. Mit der kontinuierlichen Weiterentwicklung der GenAI-Technologie (General Artificial Intelligence) ist es entscheidend und dringend geworden, die Erstellung von Anwendungen mit KI-Funktionen zu vereinfachen. Vor diesem Hintergrund entstand „SpringAI“ mit dem Ziel, den Prozess der Entwicklung von KI-Funktionsanwendungen zu vereinfachen, ihn einfach und intuitiv zu gestalten und unnötige Komplexität zu vermeiden. Durch „SpringAI“ können Entwickler einfacher Anwendungen mit KI-Funktionen erstellen, wodurch diese einfacher zu verwenden und zu bedienen sind.

Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Jan 08, 2024 am 10:23 AM

So implementieren Sie programmgesteuerte Spring-Transaktionen: 1. Verwenden Sie TransactionCallback und TransactionCallbackWithoutResult; 4. Verwenden Sie TransactionTemplate in Kombination mit @Transactional;

Wo finde ich Douyin-Fangruppenaufgaben? Wird der Douyin-Fanclub an Niveau verlieren? Wo finde ich Douyin-Fangruppenaufgaben? Wird der Douyin-Fanclub an Niveau verlieren? Mar 07, 2024 pm 05:25 PM

Als eine der derzeit beliebtesten Social-Media-Plattformen hat TikTok eine große Anzahl von Nutzern zur Teilnahme angezogen. Auf Douyin gibt es viele Fangruppenaufgaben, die Benutzer erledigen können, um bestimmte Belohnungen und Vorteile zu erhalten. Wo finde ich die Aufgaben des Douyin-Fanclubs? 1. Wo kann ich die Aufgaben des Douyin-Fanclubs einsehen? Um die Aufgaben einer Douyin-Fangruppe zu finden, müssen Sie die persönliche Homepage von Douyin besuchen. Auf der Startseite sehen Sie eine Option namens „Fanclub“. Klicken Sie auf diese Option und Sie können die Fangruppen, denen Sie beigetreten sind, und die damit verbundenen Aufgaben durchsuchen. In der Spalte „Fanclub-Aufgaben“ sehen Sie verschiedene Arten von Aufgaben, wie z. B. Likes, Kommentare, Teilen, Weiterleiten usw. Für jede Aufgabe gibt es entsprechende Belohnungen und Anforderungen. Im Allgemeinen erhalten Sie nach Abschluss der Aufgabe eine bestimmte Menge an Goldmünzen oder Erfahrungspunkten.

Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Apr 28, 2024 am 11:46 AM

Als Branchenführer bietet Spring+AI durch seine leistungsstarke, flexible API und erweiterte Funktionen führende Lösungen für verschiedene Branchen. In diesem Thema werden wir uns mit den Anwendungsbeispielen von Spring+AI in verschiedenen Bereichen befassen. Jeder Fall wird zeigen, wie Spring+AI spezifische Anforderungen erfüllt, Ziele erreicht und diese LESSONSLEARNED auf ein breiteres Anwendungsspektrum ausdehnt. Ich hoffe, dieses Thema kann Sie dazu inspirieren, die unendlichen Möglichkeiten von Spring+AI tiefer zu verstehen und zu nutzen. Das Spring-Framework hat eine mehr als 20-jährige Geschichte im Bereich der Softwareentwicklung, und seit der Veröffentlichung der Spring Boot 1.0-Version sind 10 Jahre vergangen. Nun kann niemand diesen Frühling bestreiten

Erfahren Sie, wie Sie das geplante Herunterfahren von Win11 einrichten Erfahren Sie, wie Sie das geplante Herunterfahren von Win11 einrichten Jan 06, 2024 pm 07:14 PM

Manchmal müssen wir den Computer für eine gewisse Zeit stehen lassen, um ihn weiter herunterzuladen oder bestimmte Programme zuzulassen, und möchten ihn nach Abschluss des Vorgangs einfach herunterfahren Verwenden Sie den Befehl zum Herunterfahren. So richten Sie ein geplantes Herunterfahren in Win11 ein: 1. Klicken Sie zunächst mit der rechten Maustaste auf das Startmenü in der unteren linken Ecke und öffnen Sie „Ausführen“. 2. Geben Sie dann „shutdown-s-t7200“ ein und drücken Sie die Eingabetaste, um es auszuführen. (7200 ist hier die geplante Abschaltzeit in Sekunden, 7200 ist die Abschaltzeit nach 2 Stunden) 3. Auf diese Weise können wir die Einstellung für das geplante Herunterfahren abschließen. 4. Wenn Sie das geplante Herunterfahren abbrechen möchten, geben Sie einfach „shutdown-a“ ein und drücken Sie die Eingabetaste. 5. Nach der Bestätigung können Sie das geplante Herunterfahren abbrechen.

See all articles