Spring 3 + Quartz 1.8.6 Scheduler-Beispiel
Updated on 25 July 2012 - Upgrade-Artikel zur Verwendung von Spring 3 und Quartz 1.8.6 (es war Spring 2.5.6 und Quartz 1.6)
In diesem Tutorial zeigen wir Ihnen, wie Sie Spring in das Quartz Scheduler Framework integrieren. Spring bietet viele praktische Klassen zur Unterstützung von Quarz und zur Entkopplung Ihrer Klasse an Quarz-APIs.
Benutztes Werkzeug :
-
Feder 3.1.2.FREIGABE
-
Quarz 1.8.6
-
Eclipse 4.2
-
Maven 3
Why NOT Quartz 2?
Derzeit unterstützt Spring 3 noch KEINE Quarz 2-APIs (sieheSPR-8581 bug report). Aktualisiert diesen Artikel erneut, sobald der Fehler behoben ist.
1. Projektabhängigkeit
Sie benötigen die folgenden Abhängigkeiten, um Spring 3 und Quartz 1.8.6 zu integrieren
Datei: pom.xml
...... org.springframework spring-core 3.1.2.RELEASE org.springframework spring-context-support 3.1.2.RELEASE org.springframework spring-tx 3.1.2.RELEASE org.quartz-scheduler quartz 1.8.6
2. Scheduler Task
Erstellen Sie eine normale Java-Klasse. Dies ist die Klasse, die Sie in Quartz planen möchten.
Datei: RunMeTask.java
package com.example.common; public class RunMeTask { public void printMe() { System.out.println("Spring 3 + Quartz 1.8.6 ~"); } }
3. Quarzplaner-Job deklarieren
Mit Spring können Sie Quarz-Jobs auf zwei Arten deklarieren:
3.1 MethodInvokingJobDetailFactoryBean
Dies ist die einfachste und unkomplizierteste Methode, die für einen einfachen Scheduler geeignet ist.
3.2 JobDetailBeanQuartzJobBean
ist flexibler und für komplexe Scheduler geeignet. Sie müssen eine Klasse erstellen, um dieQuartzJobBean
des Spring zu erweitern, die Methode, die Sie planen möchten, in derexecuteInternal()
-Methode zu definieren und die Scheduler-Task (RunMeTask) über die Setter-Methode zu übergeben.
Datei: RunMeJob.java
package com.example.common; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; public class RunMeJob extends QuartzJobBean { private RunMeTask runMeTask; public void setRunMeTask(RunMeTask runMeTask) { this.runMeTask = runMeTask; } protected void executeInternal(JobExecutionContext context) throws JobExecutionException { runMeTask.printMe(); } }
Konfigurieren Sie die Zielklasse überjobClass
und die Methode, die überjobDataAsMap
ausgeführt werden soll.
4. Auslösen
Konfigurieren Sie den Quarz-Trigger so, dass definiert wird, wann Ihr Scheduler-Job ausgeführt wird. Es werden zwei Arten von Triggern unterstützt:
4.1 SimpleTrigger
Hier können Sie die Startzeit, die Endzeit und das Wiederholungsintervall festlegen, um Ihren Job auszuführen.
4.2 CronTrigger
Mit diesem Unix-Cron-Ausdruck können Datum und Uhrzeit für die Ausführung Ihres Jobs angegeben werden.
Note
Der Unix-Cron-Ausdruck ist hochflexibel und leistungsstark. Weitere Informationen finden Sie auf den folgenden Websites:
5. Scheduler Factory
Erstellen Sie eine Scheduler-Factory-Bean, um sowohl Jobdetails als auch Trigger miteinander zu integrieren.
6. Spring Bean-Konfigurationsdatei
Vervollständigen Sie die Bean-Konfigurationsdatei von Spring.
Datei: Spring-Quartz.xml
7. Demo
Führen Sie es aus ~
package com.example.common; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main( String[] args ) throws Exception { new ClassPathXmlApplicationContext("Spring-Quartz.xml"); } }
Ausgabe an die Konsole.
Jul 25, 2012 3:23:09 PM org.springframework.scheduling.quartz.SchedulerFactoryBean startScheduler INFO: Starting Quartz Scheduler now Spring 3 + Quartz 1.8.6 ~ //run every 5 seconds Spring 3 + Quartz 1.8.6 ~
Quellcode herunterladen
Laden Sie es herunter -Spring3-Quartz-Example.zip (25 KB)