Exemple d’intégration du planificateur Struts 1 Quartz 2

Exemple d'intégration de l'ordonnanceur Struts 1 + Quartz 2

Dans ce didacticiel, nous allons vous montrer comment créer un projet d'application Web simple avec Apache Struts 1.x et l'intégrer au framework de planificateur Quartz. Pendant le démarrage du projet, il démarrera le moteur Quartz et lancera la tâche de planificateur définie.

L'idée générale est assez simple, il vous suffit de créer unQuartz Struts plug-in pour le travail d'intégration.

Struts <--> Quartz Struts Plug-in <--> Quartz

Les outils utilisés :

  1. Apache Struts 1.3.10

  2. Quartz 2.1.5

  3. Eclipse IDE

  4. Maven

Note
Veuillez visiter ceQuartz 2 scheduler example pour apprendre l'utilisation de base du framework Quartz.

1. Dépendance

Obtenez les dépendances Struts et Quartz via Maven.

Fichier: pom.xml

    
        org.apache.tomcat
        servlet-api
        6.0.35
    

    
    
        org.apache.struts
        struts-core
        1.3.10
    

    
        org.apache.struts
        struts-taglib
        1.3.10
    

    
        org.apache.struts
        struts-extras
        1.3.10
    

    
    
        org.quartz-scheduler
        quartz
        2.1.5
    

2. Travail du planificateur de quartz

Créez un travail Quartz pour imprimer un message.

Fichier: SchedulerJob.java

package com.example.common.quartz;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class SchedulerJob implements Job
{
    public void execute(JobExecutionContext context)
    throws JobExecutionException {

       System.out.println("Print Print Struts 1.3 + Quartz 2.1.5 integration example ~");

    }
}

3. Plug-in Struts

Créez un plug-in Struts simple et intégrez les frameworks Quartz. Dans ce plugin, lors de l'initialisation de Struts, la méthodeinit() sera appelée et démarrera le Job du planificateur Quartz toutes les 5 secondes.

Fichier: QuartzPlugin.java

package com.example.common.plugin;

import javax.servlet.ServletException;

import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

import com.example.common.quartz.SchedulerJob;

public class QuartzPlugin implements PlugIn {

    @Override
    public void destroy() {
        // null
    }

    @Override
    public void init(ActionServlet servlet, ModuleConfig config)
            throws ServletException {

        JobDetail job = JobBuilder.newJob(SchedulerJob.class)
            .withIdentity("anyJobName", "group1").build();

        try {

            Trigger trigger = TriggerBuilder
                .newTrigger()
                .withIdentity("anyTriggerName", "group1")
                .withSchedule(
                    CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
                .build();

            Scheduler scheduler = new StdSchedulerFactory().getScheduler();
            scheduler.start();
            scheduler.scheduleJob(job, trigger);

        } catch (SchedulerException e) {
            e.printStackTrace();
        }

    }

}

4. Déclare le plugin

Incluez lesStruts plug-in ci-dessus dans le fichier de configuration Struts (struts-config.xml).

Fichier: struts-config.xml





    

       

    

    

5. Demo

Au démarrage de Struts, lancez la tâche du planificateur Quartz.

struts and quartz 2 example

Télécharger le code source

Téléchargez-le -Struts-Quartz-2-Example.zip (24 Ko)