Spring quartz使用详解

Spring quartz在作定时任务时使用起来很方便,较java的timer使用起来更加高效,管理起来快捷,下面是详细配置

<?xml version="1.0" encoding="utf-8"?>
<beans default-autowire="byName"
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
	
	
	<!-- =========================== 要调用的工作类 ================================ -->
	 <!-- 处理日志文件任务 -->
	<bean id="exeLogFileJob" class="com.wgzhl.dao.manager.job.impl.ExeLogFileJobImpl"></bean>
	 <!-- 创建表任务 -->
	<bean id="tableManagerJob" class="com.wgzhl.dao.manager.job.impl.TableManagerJobImpl"></bean>
	
	
	
	<!--  =====================      定义调用对象和调用对象的方法      =================================  -->
	<!--  迁移历史数据调用对象及方法  -->
	<bean id="exeLogFileJobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 调用的类  -->
		<property name="targetObject">
			<ref bean="exeLogFileJob"/>
		</property>
		<!-- 调用类中的方法  -->
		<property name="targetMethod">
			<value>exeLoadLogFile</value>
		</property>
	</bean>
	<!--  创建表任务调用对象及方法  -->
	<bean id="createAppLogTableTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 调用的类  -->
		<property name="targetObject">
			<ref bean="tableManagerJob"/>
		</property>
		<!-- 调用类中的方法  -->
		<property name="targetMethod">
			<value>createAppLogTable</value>
		</property>
	</bean>
	
	
	<!-- ================== 	定义触发时间  	================== -->
	<!-- 迁移历史数据 触发时间  -->
	<bean id="doExeLogFileJobTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="exeLogFileJobTask"/>
		</property>
		<!-- cron表达式  -->
		<property name="cronExpression">
			<value>00 01 * * * ?</value>
			<!--<value>
			0 0 * * * ? 每小时整点触发
			"0 15 10 15 * ?" 每月15日上午10:15触发
			"0 15 10 L * ?" 每月最后一日的上午10:15触发
			"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
			"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
			"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 
			</value>
		-->
		</property>
	</bean>
	<!-- 创建表 触发时间  -->
	<bean id="doCreateAppLogTableTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="createAppLogTableTask"/>
		</property>
		<!-- cron表达式  -->
		<property name="cronExpression">
			<value>00 01 09 * * ?</value>
			<!--<value>
			"0 15 10 15 * ?" 每月15日上午10:15触发
			"0 15 10 L * ?" 每月最后一日的上午10:15触发
			"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
			"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
			"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 
			</value>
		-->
		</property>
	</bean>
	
	
	<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序   -->
	<bean id="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="doExeLogFileJobTime"/>
				<ref bean="doCreateAppLogTableTime"/>
			</list>
		</property>
	</bean>
</beans>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值