Tutoriel du programmateur Quartz 1.6

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]