Quartz - Spring和Quartz的集成
2018-03-06 10:54
274 查看
一、创建任务实体 实现任务的具体逻辑
1、继承式的实现
二、配置作业细节 注入要被调度的任务
1、继承式的调度配置
三、配置任务触发器 继承和非继承的配置相同,定义任务触发的时间与频率,常用触发器有SimpleTrigger和CronTrigger两种
1、SimpleTriggerBean触发器,每隔多长时间执行一次的触发器(上一次开始到下一次开始开始之间的间隔)
四、配置任务计划的调度工厂
五、补充
1、如果出现定时调度的任务运行一段时间后突然不执行了,可以尝试增大线程池的最大线程数org.quartz.threadPool.threadCount,该参数默认值为10
1、继承式的实现
package com.xl.task; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; public class SimpleExtsJob extends QuartzJobBean { private String alias; //由JobDetailBean的jobDataAsMap注入 @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System.out.println("Job start..."); } public void setAlias(String alias) { this.alias = alias; } }2、非继承的实现
package com.xl.task; import org.springframework.stereotype.Component; @Component public class SimpleCommJob { public void doJob() throws Exception { System.out.println("Job start..."); } }
二、配置作业细节 注入要被调度的任务
1、继承式的调度配置
<bean name="simpleExtsJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.xl.task.SimpleExtsJob" /> <!-- 配置Job的类名 --> <property name="jobDataAsMap"> <!-- 为有属性需要注入的Job配置值(quartz1.6和spring3.0可以自动为为继承式Job属性注入) --> <map> <entry key="alias" value="simple" /> </map> </property> </bean>2、非继承的调度配置
<bean id="SimpleCommJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="simpleCommJob"/> <!-- 注入Bean的Id --> <property name="targetMethod" value="doJob"/> <!-- 任务被调度后执行的方法 --> <property name="concurrent" value="false"/> <!-- 是否允许并发(在任务执行时间大于调度间隔时间时) --> </bean>
三、配置任务触发器 继承和非继承的配置相同,定义任务触发的时间与频率,常用触发器有SimpleTrigger和CronTrigger两种
1、SimpleTriggerBean触发器,每隔多长时间执行一次的触发器(上一次开始到下一次开始开始之间的间隔)
<bean id="simpleCommSimpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="simpleCommJobDetail" /> <property name="startDelay" value="60000" /> <property name="repeatInterval" value="60000" /> </bean>2、CronTriggerBean触发器,每到什么时间执行一次的触发器(如每天几点几分开始执行)
<bean id="simpleCommCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="simpleCommJobDetail"/> <property name="cronExpression" > <value>0 0 9 * * ?</value> </property> </bean>
四、配置任务计划的调度工厂
<bean id="configScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="simpleCommSimpleTrigger"/> <!-- 配置任务触发器 --> <!-- <ref local="simpleCommCronTrigger"/> --> </list> </property> </bean>
五、补充
1、如果出现定时调度的任务运行一段时间后突然不执行了,可以尝试增大线程池的最大线程数org.quartz.threadPool.threadCount,该参数默认值为10
相关文章推荐
- Quartz-Spring集成Quartz通过注解配置的方式
- Spring 与 Quartz 集成事务
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- Spring集成Quartz1.8.4版定时任务框架介绍
- Spring集成Quartz定时任务框架介绍
- Spring3.1集成Quartz,让你的任务执行随心所欲
- Spring 4集成 Quartz2(转)
- Quartz总结(一):Quartz集成Spring的2个方法
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- spring3.0.5与quartz1.8.4的集成详细说明
- Spring4、SpringMVC4、Jackson2、Hibernate4、Quartz2、Plupload2、Proxool0.9集成
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- Spring 集成 Quartz 的配置与使用
- (十七)Spring 集成Quartz
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- Spring与Quartz集成配置实现简单定时任务调度
- [置顶] Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)
- spring内集成quartz
- Spring Boot集成持久化Quartz定时任务管理和界面展示
- Spring Boot集成Quartz-动态任务管理