Maison Java javaDidacticiel Exemple d'implémentation de Spring+quartz

Exemple d'implémentation de Spring+quartz

Jun 21, 2017 am 09:28 AM
spring 任务 basé sur 定时

Il y a un problème dans le projet de mon ami. Son côté est basé sur l'architecture Spring et comporte une tâche relativement simple qui nécessite une exécution planifiée. Après avoir compris ses besoins, il a proposé une implémentation Spring+quartz relativement simple.

Notez que cet article explique uniquement comment effectuer les tâches planifiées les plus simples dans le cadre du projet Spring terminé.

La première étape est de connaître l'architecture Spring, qui est très intéressante et intéressante. L'effet de brancher et de débrancher librement les modules fonctionnels peut être obtenu. Le projet d'ingénierie est basé sur la gestion des dépendances des packages MAVEN, alors listez les références des packages de dépendances nécessaires cette fois-ci :

 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 <!-- 定时器依赖 结束 -->
Copier après la connexion

Bien sûr, cela dépend de la correspondance de la version Spring correspondante. Notre projet ici est 4.0.2. Le package précédent spring-context-support est principalement utilisé comme composant pour la communication et la gestion entre Spring et quartz. S'il est commenté, une erreur comme celle-ci sera signalée

dans la configuration de MAVEN Après avoir terminé les packages qui doivent être ajoutés (les autres packages ne seront pas abordés ici pour le moment, cet article ne traite que de la configuration dans le cadre du projet Spring complet), nous pouvons commencer à ajouter des modules fonctionnels pour les tâches planifiées à ce projet.

La deuxième étape consiste à repartir de l'origine du projet web, les modifications dans web.xml. Étant donné que le fichier de configuration Spring du projet d'origine était Spring-mvc.xml, j'ai modifié le fichier de configuration de la tâche planifiée en spring-time.xml. De cette manière, la même configuration d'analyse peut être lue au démarrage. Le code spécifique est le suivant :

1 <context-param>2         <param-name>contextConfigLocation</param-name>3         <param-value>classpath:spring-*.xml</param-value>4     </context-param>
Copier après la connexion
Ensuite je vais vous montrer la structure de mon projet :

Avec cette configuration, Le projet saura comment l'appeler. Après avoir réalisé cette étape, nous pouvons continuer à avancer ;

La troisième étape consiste à terminer la configuration de base de spring-timer.xml, une tâche planifiée. Dans cette configuration de fichier, nous effectuons principalement trois choses :

1. Configurer les paramètres de démarrage, concernant le chargement paresseux (pour le dire brièvement, par exemple, initialiser une certaine variable à null est aussi une sorte de chargement paresseux, c'est-à-dire Autrement dit, une fois le service démarré, il ne sera instancié que lorsqu'il sera réellement appelé, sinon il n'existera pas dans la mémoire. Cela ne peut qu'économiser de l'espace logique, mais cela peut également entraîner la découverte du problème après un long délai. . , ne sera pas expliqué en détail ici), et la configuration du déclencheur

2. La configuration de quartz-2.x, y compris le nom du travail à appeler après le déclenchement de la tâche planifiée ; , et l'expression corn (c'est-à-dire que l'expression planifiée contrôle la raison pour laquelle le programme est exécuté à plusieurs reprises. Cette fois, j'ajouterai le contenu sur l'expression cron plus tard

3. Configurez le contenu du travail et le) ; classe spécifique correspondant à l'emploi.

Maintenant que l'explication du processus logique est terminée, voici le code :

Après avoir terminé la configuration du fichier de configuration ici , vous pouvez commencer l'étape suivante, la logique métier spécifique est implémentée
 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>
Copier après la connexion
La quatrième étape est la mise en œuvre de la logique métier spécifique ;

Ce qu'il convient de noter ici, ce sont les deux points de l'image ci-dessous

L'image ci-dessus est spécifique Le nom de la classe d'implémentation métier doit être le même que la configuration de la tâche planifiée dans la figure ci-dessous.

Après avoir terminé ce qui précède, nous pouvons démarrer le projet pour voir l'effet réel.

Comme vous pouvez le voir ici, la tâche planifiée est exécutée toutes les 10 secondes selon notre configuration précédente 0/10 * * * * ?

                                                                                                                                                                                                                                                                            Il a été exécuté deux fois en même temps. La raison trouvée plus tard était que lors de la configuration de web.xml, la tâche planifiée était configurée à plusieurs reprises, ce qui entraînait son exécution plusieurs fois. Si vous rencontrez cette situation, vous pouvez vous référer à ma solution.

Il y aura ensuite deux articles, l'un est une méthode de mise en œuvre plus simple pour écrire des tâches planifiées et l'autre explique les expressions cron.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment terminer la mission du couloir d'horreur dans Goat Simulator 3 Comment terminer la mission du couloir d'horreur dans Goat Simulator 3 Feb 25, 2024 pm 03:40 PM

Le Terror Corridor est une mission dans Goat Simulator 3. Comment pouvez-vous accomplir cette mission ? Maîtriser les méthodes de dédouanement détaillées et les processus correspondants, et être capable de relever les défis correspondants de cette mission. Ce qui suit vous apportera Goat Simulator 3 Horror Corridor. Guide pour apprendre les informations connexes. Goat Simulator 3 Terror Corridor Guide 1. Tout d’abord, les joueurs doivent se rendre à Silent Hill dans le coin supérieur gauche de la carte. 2. Ici vous pouvez voir une maison avec RESTSTOP écrit sur le toit. Les joueurs doivent faire fonctionner la chèvre pour entrer dans cette maison. 3. Après être entré dans la pièce, nous allons d'abord tout droit, puis tournons à droite. Il y a une porte au bout ici, et nous entrons directement à partir d'ici. 4. Après être entré, nous devons également d'abord avancer, puis tourner à droite. Lorsque nous atteignons la porte ici, la porte sera fermée. Nous devons faire demi-tour et la trouver.

Comment réussir la mission Imperial Tomb dans Goat Simulator 3 Comment réussir la mission Imperial Tomb dans Goat Simulator 3 Mar 11, 2024 pm 01:10 PM

Goat Simulator 3 est un jeu avec un gameplay de simulation classique, permettant aux joueurs de profiter pleinement du plaisir de la simulation d'action occasionnelle. Parmi elles, la tâche Goat Simulator 3 Imperial Tomb oblige les joueurs à trouver le clocher. Certains joueurs ne savent pas comment faire fonctionner les trois horloges en même temps. Voici le guide de la mission Tomb of the Tomb dans Goat Simulator 3. Le guide de la mission Tomb of the Tomb dans Goat Simulator 3 consiste à faire sonner les cloches ! en ordre. Extension détaillée des étapes 1. Tout d'abord, les joueurs doivent ouvrir la carte et se rendre au cimetière de Wuqiu. 2. Montez ensuite au clocher. Il y aura trois cloches à l'intérieur. 3. Ensuite, du plus grand au plus petit, suivez 222312312 pour vous familiariser avec les tapotements colériques. 4. Après avoir frappé, vous pouvez terminer la mission et ouvrir la porte pour obtenir le sabre laser.

Comment faire la mission de sauvetage de Steve dans Goat Simulator 3 Comment faire la mission de sauvetage de Steve dans Goat Simulator 3 Feb 25, 2024 pm 03:34 PM

Rescue Steve est une tâche unique dans Goat Simulator 3. Que faut-il faire exactement pour la terminer ? Cette tâche est relativement simple, mais nous devons faire attention à ne pas mal comprendre le sens. Ici, nous allons vous amener à sauver Steve dans Goat Simulator. 3 stratégies de mission peuvent vous aider à mieux accomplir les tâches connexes. Goat Simulator 3 Rescue Steve Mission Stratégie 1. Arrivez d’abord à la source chaude dans le coin inférieur droit de la carte. 2. Après être arrivé à la source chaude, vous pouvez déclencher la tâche de sauvetage de Steve. 3. Notez qu'il y a un homme dans la source chaude. Bien qu'il s'appelle Steve, il n'est pas la cible de cette mission. 4. Trouvez un poisson nommé Steve dans cette source chaude et ramenez-le à terre pour accomplir cette tâche.

Un nouveau paradigme de programmation, quand Spring Boot rencontre OpenAI Un nouveau paradigme de programmation, quand Spring Boot rencontre OpenAI Feb 01, 2024 pm 09:18 PM

En 2023, la technologie de l’IA est devenue un sujet brûlant et a un impact énorme sur diverses industries, notamment dans le domaine de la programmation. Les gens sont de plus en plus conscients de l’importance de la technologie de l’IA, et la communauté Spring ne fait pas exception. Avec l’évolution continue de la technologie GenAI (Intelligence Artificielle Générale), il est devenu crucial et urgent de simplifier la création d’applications dotées de fonctions d’IA. Dans ce contexte, « SpringAI » a émergé, visant à simplifier le processus de développement d'applications fonctionnelles d'IA, en le rendant simple et intuitif et en évitant une complexité inutile. Grâce à « SpringAI », les développeurs peuvent plus facilement créer des applications dotées de fonctions d'IA, ce qui les rend plus faciles à utiliser et à exploiter.

Où puis-je trouver les tâches du groupe de fans Douyin ? Le fan club de Douyin va-t-il perdre du niveau ? Où puis-je trouver les tâches du groupe de fans Douyin ? Le fan club de Douyin va-t-il perdre du niveau ? Mar 07, 2024 pm 05:25 PM

En tant que l’une des plateformes de médias sociaux les plus populaires du moment, TikTok a attiré un grand nombre d’utilisateurs. Sur Douyin, il existe de nombreuses tâches de groupe de fans que les utilisateurs peuvent accomplir pour obtenir certaines récompenses et avantages. Alors, où puis-je trouver les tâches du fan club Douyin ? 1. Où puis-je consulter les tâches du fan club Douyin ? Afin de trouver les tâches du groupe de fans de Douyin, vous devez visiter la page d'accueil personnelle de Douyin. Sur la page d'accueil, vous verrez une option appelée « Fan Club ». Cliquez sur cette option et vous pourrez parcourir les groupes de fans que vous avez rejoints et les tâches associées. Dans la colonne des tâches du fan club, vous verrez différents types de tâches, telles que les likes, les commentaires, le partage, le transfert, etc. Chaque tâche a des récompenses et des exigences correspondantes. De manière générale, après avoir terminé la tâche, vous recevrez une certaine quantité de pièces d'or ou de points d'expérience.

Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Apr 28, 2024 am 11:46 AM

En tant que leader du secteur, Spring+AI fournit des solutions de pointe pour divers secteurs grâce à son API puissante et flexible et ses fonctions avancées. Dans cette rubrique, nous examinerons les exemples d'application de Spring+AI dans divers domaines. Chaque cas montrera comment Spring+AI répond à des besoins spécifiques, atteint ses objectifs et étend ces LEÇONS APPRISES à une gamme plus large d'applications. J'espère que ce sujet pourra vous inciter à comprendre et à utiliser plus profondément les possibilités infinies de Spring+AI. Le framework Spring a une histoire de plus de 20 ans dans le domaine du développement logiciel, et cela fait 10 ans que la version Spring Boot 1.0 est sortie. Maintenant, personne ne peut contester ce printemps

Quelles sont les méthodes de mise en œuvre des transactions programmatiques Spring ? Quelles sont les méthodes de mise en œuvre des transactions programmatiques Spring ? Jan 08, 2024 am 10:23 AM

Comment implémenter les transactions programmatiques Spring : 1. Utilisez TransactionTemplate ; 2. Utilisez TransactionCallback et TransactionCallbackWithoutResult ; 3. Utilisez les annotations Transactional ; 4. Utilisez TransactionTemplate en combinaison avec @Transactional ;

Apprenez à configurer l'arrêt programmé de Win11 Apprenez à configurer l'arrêt programmé de Win11 Jan 06, 2024 pm 07:14 PM

Parfois, nous devons quitter l'ordinateur pendant un certain temps pour le laisser continuer à télécharger ou autoriser certains programmes, et nous souhaitons l'arrêter une fois l'opération terminée. Alors, comment configurer un arrêt programmé dans Win11 ? utilisez la commande d'arrêt. Comment configurer un arrêt programmé dans Win11 : 1. Tout d'abord, cliquez avec le bouton droit sur le menu Démarrer dans le coin inférieur gauche et ouvrez « Exécuter ». 2. Entrez ensuite « shutdown-s-t7200 » et appuyez sur Entrée pour exécuter. (7200 est ici l'heure d'arrêt programmée en secondes, 7200 est l'arrêt après 2 heures) 3. De cette façon, nous pouvons compléter le réglage de l'arrêt programmé. 4. Si vous souhaitez annuler l'arrêt programmé, entrez simplement « shutdown-a » et appuyez sur Entrée. 5. Après confirmation, vous pouvez annuler l'arrêt programmé.

See all articles