Пример интеграции планировщика 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 КБ)