Пример интеграции планировщика Struts 1 + Quartz 2
В этом руководстве мы покажем вам, как создать простой проект веб-приложения с Apache Struts 1.x и интегрировать его со структурой планировщика Quartz. Во время запуска проекта он запускает механизм Quartz и запускает определенную задачу планировщика.
Общая идея довольно проста, вам просто нужно создатьQuartz Struts plug-in для работы по интеграции.
Struts <--> Quartz Struts Plug-in <--> Quartz
Используемые инструменты:
-
Apache Struts 1.3.10
-
Кварц 2.1.5
-
Eclipse IDE
-
специалист
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-Quartz-2-Example.zip (24 КБ)