sping quartz定时任务的使用

背景:最近项目,需要用到定时任务,所以就网上查了些资料,然后配置了下,因为项目用的是spring ,所以看的也是关于spring的定时任务,下面就说下自己的理解,记录下,也是便于自己下次用到的时候便于查看。

实现技术:因为使用的是spring MVC 所以使用spring的quartz ,下面就来说下具体流程:

1.配置调度工厂

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
		<property name="triggers">  
		<list>  
			<ref bean="cronTrigger"/>  
		</list>  
		</property>  
</bean>
2.配置调度方式(两者选一)

2.1 每隔指定时间,进行调度

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">  
		<property name="jobDetail" ref="reportTask" />  
		<property name="startDelay" value="0" />调度工厂实例化后,经过0秒开始执行调度  
		<property name="repeatInterval" value="500000" />每2秒调度一次 </bean>


2.2 每到指定时间,进行调度

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
		<property name="jobDetail" ref="reportTask" />  
		<!-- 每天12:00运行一次   -->
		<property name="cronExpression" value="0 0 12 * * ?" />  
</bean>
3.配置要调度的任务具体实现

<bean id="reportTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
		<property name="targetObject">  
			<bean class="com.my.task.ReportDateTask" />  
		</property>  
		<property name="targetMethod" value="reportData" />  
		<property name="concurrent" value="false" /><!-- 作业不并发调度   -->
</bean> 
4.定义具体实现类,就是一个普通的java类即可。


关于上面的配置:站在面向对象的角度来说下我的理解

需要一个任务调度工厂,按某种频率和方式,来调用执行具体的任务实现。

所以这样的话,就需要三个对象:工厂类,方式类和具体实现类

工厂类------需要------》方式类------------》然后方式类中需要关联到作用类也就是具体实现类。

便于理解配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值