Spring整合Quartz

1. 创建JobDetail

JobDetailBean扩展于JobDetail,Bean的名称就是任务的名字,默认分组为default
jobClass:实现Job的任务类
beanName:默认为Bean的id, 对应任务的名称
jobDataAsMap:类型为Map, 为任务对应的JobDataMap提供直,
applicationContextJobDataKey:可以将Spring ApplicationContext的引用保存到JobDataMap中,
以便在Job的代码中访问ApplicationCOntext,用户需要指定一个键。

jobListenerNames:类型为String[], 指定注册在Scheduler中的JobListeners名称

2. MethodInvokingJobDetailFactoryBean 

//将一个普通的业务方法,封装成一个jobDetail

<bean id="myService" class="com.wzz.Service"></bean>
	<bean id="jobDetail_1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="myService"/>
		<property name="targetMethod" value="doJob"/>
		<property name="concurrent="false"/>//指定任务是否有状态
	</bean>

doJob方法既可以是static的,也可以使非静态的,但是不能拥有入参, 不能被序列化,不能被持久化

3. 创建Trigger

1. SimpleTriggerBean
jobDetail:
beanName:
jobDataAsMap:
startDelay:延迟多少事件开始触发
triggerListenerNames: String[]

2. CronTriggerBean
<bean id="checkImagesTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
			<property name="jobDetail" ref="jobDetail"/>
			<property name="cronExpression="0/5 **** ?"/>
		</bean>

4. 创建Scheduler


SchedulerFactoryBean

calendars:Map, 注册Calendar
jobDetail:JobDetail[]
autoStartup:初始化后是否马上启动Schedular
startDelay:初始化完成后,延迟多少秒启动


5. 总体代码示例:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:util="http://www.springframework.org/schema/util"  
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
   
   	<bean name="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
   		<property name="jobClass" value="com.books.quartzJob.MyJob"></property>
   		<property name="durability" value="true" />
   		<property name="group" value="aaa"></property>
   	</bean>
    
    <bean id="simpleTrigger1" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
    	<property name="jobDetail" ref="jobDetail"/>
    	<property name="startDelay" value="1000"/>
    	<property name="repeatInterval" value="1000"/>
    	<property name="repeatCount" value="100"/>
    </bean>
    
    <bean id="simpleTrigger2" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
    	<property name="jobDetail" ref="jobDetail"/>
    	<property name="startDelay" value="1000"/>
    	<property name="repeatInterval" value="2000"/>
    	<property name="repeatCount" value="100"/>
    </bean>
    
    <bean id="schedualer" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    	<property name="triggers">
    		<list>
    			<ref bean="simpleTrigger1"/>
    			<ref bean="simpleTrigger2"/>
    		</list>
    	</property>
    </bean>
</beans>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值