Quartz ist ein leistungsfähiges und fortschrittliches Scheduler-Framework, mit dem Java-Entwickler einen Job planen können, der zu einem bestimmten Zeitpunkt zu einem bestimmten Zeitpunkt ausgeführt werden soll.
Dieses Tutorial zeigt Ihnen, wie Sie mit Quartz 1.6.3 einen Scheduler-Job entwickeln.
1. Laden Sie Quarz herunter
Sie können die Quartz-Bibliothek unter official website oder im zentralen Repository von Maven herunterladen
Datei: pom.xml
<dependencies>
<!-- Quartz API -->
<dependency>
<groupId>opensymphony</groupId>
<artifactId>quartz</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.directory.studio</groupId>
<artifactId>org.apache.commons.logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
2. Quarz Job
Quarz-Job ist definiert, was Sie ausführen möchten?
Datei: HelloJob
package com.mkyong.common;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloJob implements Job
{
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("Hello Quartz!");
}
}
-
Quarzauslöser
Quarz-Auslöser ist definiert, wenn der Quarz Ihren Job oberhalb von Quarz ausführen wird.
Es gibt zwei Arten von Quarzauslösern:
-
SimpleTrigger - Ermöglicht die Einstellung von Startzeit, Endzeit und Wiederholungsintervall.
-
CronTrigger - Erlaubt es dem Unix-Cron-Ausdruck, die Daten und anzugeben
mal um deinen Job auszuführen.
Unix-Cron-Ausdruck Der Unix-Cron-Ausdruck ist äußerst flexibel und leistungsstark. Sie können in den folgenden Websites viele Beispiele für Cron-Ausdrucke lernen und sehen.
SimpleTrigger - Alle 30 Sekunden ausführen.
SimpleTrigger trigger = new SimpleTrigger();
trigger.setName("dummyTriggerName");
trigger.setStartTime(new Date(System.currentTimeMillis() + 1000));
trigger.setRepeatCount(SimpleTrigger.REPEAT__INDEFINITELY);
trigger.setRepeatInterval(30000);
CronTrigger - Läuft alle 30 Sekunden.
CronTrigger trigger = new CronTrigger();
trigger.setName("dummyTriggerName");
trigger.setCronExpression("0/30 ** ** ** ** ?");
4. Scheduler
Die Scheduler-Klasse verknüpft " Job " und " Trigger " miteinander und führt sie aus.
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
5. Vollständiges Beispiel
Hier sind zwei vollständige Beispiele für die Verwendung von Quartz über SimpleTrigger und CronTrigger.
-
Beispiel für SimpleTrigger ** Führen Sie zum ersten Mal sehr 30 Sekunden mit einer Verzögerung von 1 Sekunde aus.
package com.mkyong.common;
import java.util.Date;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class SimpleTriggerExample
{
public static void main( String[]args ) throws Exception
{
JobDetail job = new JobDetail();
job.setName("dummyJobName");
job.setJobClass(HelloJob.class);
//configure the scheduler time
SimpleTrigger trigger = new SimpleTrigger();
trigger.setStartTime(new Date(System.currentTimeMillis() + 1000));
trigger.setRepeatCount(SimpleTrigger.REPEAT__INDEFINITELY);
trigger.setRepeatInterval(30000);
//schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
}
-
CronTrigger-Beispiel ** Führen Sie den Job alle 30 Sekunden aus.
package com.mkyong.common;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.impl.StdSchedulerFactory;
public class CronTriggerExample
{
public static void main( String[]args ) throws Exception
{
JobDetail job = new JobDetail();
job.setName("dummyJobName");
job.setJobClass(HelloJob.class);
CronTrigger trigger = new CronTrigger();
trigger.setName("dummyTriggerName");
trigger.setCronExpression("0/30 ** ** ** ** ?");
//schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
}
Quellcode herunterladen
Laden Sie es herunter - QuartzExample.zip (14kb)