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)