Quartz est un cadre de planification puissant et avancé, conçu pour aider les développeurs Java à planifier un travail à exécuter à une date et une heure spécifiées.
Ce tutoriel vous montre comment développer un travail de planificateur avec Quartz 1.6.3.
1. Télécharger Quartz
Vous pouvez obtenir la bibliothèque Quartz sur site officiel ou dans le répertoire central Maven
Fichier: 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. Travail à quartz
Le travail de quartz est défini ce que vous voulez exécuter?
Fichier: 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!"); } }
3. Déclencheur à quartz
Le déclenchement de Quartz est défini lorsque le Quartz exécutera votre travail au-dessus de Quartz?
Il existe deux types de déclencheurs Quartz:
-
SimpleTrigger - Permet de définir l’heure de début, l’heure de fin, répétez l’intervalle.
-
CronTrigger - Permet à l’expression Unon cron de spécifier les dates et
fois pour exécuter votre travail.
Expression Unon cron L’expression Unix cron est extrêmement flexible et puissante. Vous pouvez apprendre et voir de nombreux exemples d’expression cron dans les sites Web suivants.
SimpleTrigger - Exécuté toutes les 30 secondes.
SimpleTrigger trigger = new SimpleTrigger(); trigger.setName("dummyTriggerName"); trigger.setStartTime(new Date(System.currentTimeMillis() + 1000)); trigger.setRepeatCount(SimpleTrigger.REPEAT__INDEFINITELY); trigger.setRepeatInterval(30000);
CronTrigger - Exécuté toutes les 30 secondes.
CronTrigger trigger = new CronTrigger(); trigger.setName("dummyTriggerName"); trigger.setCronExpression("0/30 ** ** ** ** ?");
4. Planificateur
La classe de planificateur lie ensemble les tâches « Job » et « Trigger » et l’exécute.
Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(job, trigger);
5. Exemple complet
Voici deux exemples complets d’utilisation de Quartz, via SimpleTrigger et CronTrigger.
-
Exemple SimpleTrigger ** Exécuter très 30 secondes avec un délai d’une seconde pour la première fois.
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); } }
-
Exemple CronTrigger ** + Idem, exécutez le travail toutes les 30 secondes.
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); } }
Télécharger le code source
Téléchargez-le - lien://wp-content/uploads/2010/04/QuartzExample.zip[QuartzExample.zip](14kb)
Références
lien://tag/java/[java]lien://tag/quartz/[quartz]lien://tag/ordonnanceur/[ordonnanceur]