一、基础
1、依赖 jar
quartz-1.8.5.jar
spring-context-3.0.5.RELEASE.jar
spring-context-support-3.0.5.RELEASE.jar
2、Spring 与 Quartz
Spring-3.1 整合必须使用 Quartz-1.* ---> org.quartz.CronTrigger 在quartz 1.8 中是类,在quartz 2中是接口。(由org.springframework.scheduling.quartz.CronTriggerBean 继承/实现)
Spring-3.1 及以后 支持 Quartz-2.*
二、集成Spring
1、Job -- 调度任务
(1)、Job 标识
a、方式一:
作业类需要继承自特定的作业类基类org.springframework.scheduling.quartz.QuartzJobBean;
b、方式二:
普通java类
(2)、配置
a、方式一:
<bean id="arrange" class="org.springframework.scheduling.quartz.JobDetailBean">
<!-- 指定了目标类,每次调试都会建立一个新的实例 -->
<property name="jobClass" value="game.job.OrderJob"></property>
<!-- 用于向目标类实例的属性注入值 -->
<property name="jobDataAsMap">
<map>
<entry key="">
<ref bean="" />
</entry>
</map>
</property>
</bean>
b、方式二:
<bean id="SpringQtzJob" class="com.ncs.hj.SpringQtz"/>
<bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="SpringQtzJob" />
<!-- 要执行的方法名称 -->
<property name="targetMethod" value="execute" />/>
<!-- false表示job不会并发执行,默认为true-->
<property name="concurrent" value="false" />
</bean>
2、触发器
(1)、org.springframework.scheduling.quartz.SimpleTriggerBean
a、作用
每隔指定时间则触发一次
b、配置
<bean id="testTaskTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="testTask"></property>
<!-- 指定调度时间间隔此处为2秒 -->
<property name="repeatInterval" value="2000"></property>
<!-- 指定调度执行次数,不指定无穷次 -->
<property name="repeatCount" value="3"></property>
</bean>
(2)、org.springframework.scheduling.quartz.CronTriggerBean
a、作用
每到指定时间则触发一次
b、配置
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="arrange"></property>
<!-- 每天开始时相关调度任务 -->
<property name="cronExpression" value="0 0 6 * * ? *"></property>
</bean>
3、调度器
(1)、配置
<bean id="startQuartz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
</bean>
1、依赖 jar
quartz-1.8.5.jar
spring-context-3.0.5.RELEASE.jar
spring-context-support-3.0.5.RELEASE.jar
2、Spring 与 Quartz
Spring-3.1 整合必须使用 Quartz-1.* ---> org.quartz.CronTrigger 在quartz 1.8 中是类,在quartz 2中是接口。(由org.springframework.scheduling.quartz.CronTriggerBean 继承/实现)
Spring-3.1 及以后 支持 Quartz-2.*
二、集成Spring
1、Job -- 调度任务
(1)、Job 标识
a、方式一:
作业类需要继承自特定的作业类基类org.springframework.scheduling.quartz.QuartzJobBean;
b、方式二:
普通java类
(2)、配置
a、方式一:
<bean id="arrange" class="org.springframework.scheduling.quartz.JobDetailBean">
<!-- 指定了目标类,每次调试都会建立一个新的实例 -->
<property name="jobClass" value="game.job.OrderJob"></property>
<!-- 用于向目标类实例的属性注入值 -->
<property name="jobDataAsMap">
<map>
<entry key="">
<ref bean="" />
</entry>
</map>
</property>
</bean>
b、方式二:
<bean id="SpringQtzJob" class="com.ncs.hj.SpringQtz"/>
<bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="SpringQtzJob" />
<!-- 要执行的方法名称 -->
<property name="targetMethod" value="execute" />/>
<!-- false表示job不会并发执行,默认为true-->
<property name="concurrent" value="false" />
</bean>
2、触发器
(1)、org.springframework.scheduling.quartz.SimpleTriggerBean
a、作用
每隔指定时间则触发一次
b、配置
<bean id="testTaskTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="testTask"></property>
<!-- 指定调度时间间隔此处为2秒 -->
<property name="repeatInterval" value="2000"></property>
<!-- 指定调度执行次数,不指定无穷次 -->
<property name="repeatCount" value="3"></property>
</bean>
(2)、org.springframework.scheduling.quartz.CronTriggerBean
a、作用
每到指定时间则触发一次
b、配置
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="arrange"></property>
<!-- 每天开始时相关调度任务 -->
<property name="cronExpression" value="0 0 6 * * ? *"></property>
</bean>
3、调度器
(1)、配置
<bean id="startQuartz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
</bean>