Рубрики
Без рубрики

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

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

Автор оригинала: mkyong.

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

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

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

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

  1. Стойки Apache 1.3.10
  2. Кварц 2.1.5
  3. Среда разработки Eclipse
  4. Мавен

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

Получите зависимости от распорок и кварца через 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

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

Файл: SchedulerJob.java

package com.mkyong.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 и интегрируйте фреймворки Quartz. В этом плагине во время инициализации Struts будет вызываться метод init() , который запускает задание планировщика Quartz каждые 5 секунд.

Файл: QuartzPlugin.java

package com.mkyong.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.mkyong.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 в файл конфигурации Struts (struts-config.xml ).

Файл: struts-config.xml







	

	   

	

	


5. Демонстрация

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

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

Рекомендации

  1. Официальный сайт Quartz
  2. Пример планировщика Quartz 2

Оригинал: “https://mkyong.com/struts/struts-quartz-scheduler-integration-example/”