Пример интеграции планировщика Struts 1 + Quartz 2

Пример интеграции планировщика Struts 1 + Quartz 2

В этом руководстве мы покажем вам, как создать простой проект веб-приложения с Apache Struts 1.x и интегрировать его со структурой планировщика Quartz. Во время запуска проекта он запускает механизм Quartz и запускает определенную задачу планировщика.

Общая идея довольно проста, вам просто нужно создатьQuartz Struts plug-in для работы по интеграции.

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

Используемые инструменты:

  1. Apache Struts 1.3.10

  2. Кварц 2.1.5

  3. Eclipse IDE

  4. специалист

Note
Посетите этотQuartz 2 scheduler example, чтобы узнать об основах использования платформы Quartz.

1. зависимость

Получите зависимости Struts и Quartz через Maven.

Файл: 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. Работа планировщика кварца

Создайте задание Quartz для печати сообщения.

Файл: 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. Плагин Struts

Создайте простой плагин Struts и интегрируйте платформы Quartz. В этом плагине во время инициализации Struts будет вызываться методinit() и запускать Quartz scheduler Job каждые 5 секунд.

Файл: 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. Объявляет плагин

Включите вышеStruts plug-in в файл конфигурации Struts (struts-config.xml).

Файл: struts-config.xml





    

       

    

    

5. Demo

Во время запуска Struts запустите задачу планировщика Quartz.

struts and quartz 2 example

Скачать исходный код

Скачать -Struts-Quartz-2-Example.zip (24 КБ)