Spring 3 Quartz 1.8.6 Scheduler-Beispiel

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 :

  1. Feder 3.1.2.FREIGABE

  2. Quarz 1.8.6

  3. Eclipse 4.2

  4. 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 JobDetailBean
QuartzJobBean 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)