Struts 1 + Quartz 2调度程序集成示例

在本教程中,我们将向您展示如何使用Apache Struts 1.x创建一个简单的Web应用程序项目,以及如何与Quartz Scheduler框架集成。 在项目启动期间,它将启动Quartz引擎并触发定义的调度程序任务。

总体思路很简单,您只需要创建一个Quartz Struts插件即可进行集成工作。

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

使用的工具 :

  1. Apache Struts 1.3.10
  2. 石英2.1.5
  3. Eclipse IDE
  4. 马文

注意
请访问此Quartz 2调度程序示例,以了解Quartz框架的基本用法。

1.依赖

通过Maven获取Struts和Quartz依赖项。

档案:pom.xml

<dependency>
		<groupId>org.apache.tomcat</groupId>
		<artifactId>servlet-api</artifactId>
		<version>6.0.35</version>
	</dependency>

	<!-- Struts 1.3 framework -->
	<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts-core</artifactId>
		<version>1.3.10</version>
	</dependency>

	<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts-taglib</artifactId>
		<version>1.3.10</version>
	</dependency>

	<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts-extras</artifactId>
		<version>1.3.10</version>
	</dependency>

	<!-- Quartz framework -->
	<dependency>
		<groupId>org.quartz-scheduler</groupId>
		<artifactId>quartz</artifactId>
		<version>2.1.5</version>
	</dependency>

2. Quartz Scheduler作业

创建一个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插件

创建一个简单的Struts插件并集成Quartz框架。 在此插件中,在Struts初始化期间,将调用init()方法并每5秒启动Quartz Scheduler Job。

文件: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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">

<struts-config>

	<action-mappings>

	   <action path="/Welcome" type="org.apache.struts.actions.ForwardAction"
		parameter="/pages/quartz_started.jsp" />

	</action-mappings>

	<plug-in className="com.mkyong.common.plugin.QuartzPlugin" />

</struts-config>

5.演示

在Struts启动期间,触发Quartz调度程序任务。

struts and quartz 2 example

下载源代码

下载它– Struts-Quartz-2-Example.zip (24 KB)

参考文献

  1. 石英官方网站
  2. Quartz 2调度程序示例

翻译自: https://mkyong.com/struts/struts-quartz-scheduler-integration-example/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值