使用Spring+Quartz实现定时任务
来源:互联网 发布:广州诗悦网络怎么样 编辑:程序博客网 时间:2024/06/15 20:19
一、所需jar包
1、若quartz-all.jar版本为2.x,则spring版本必须为3.1以上。2、若spring版本为3.0之前,则只需spring.jar、quartz-all-1.x.jar、jta.jar、commons-collections-3.1.jar3、若spring版本为3.0之后,且quartz-all.jar版本为1.x,则springjar文件需要以下jar包:spring-core-3.0.5.RELEASE.jar spring-beans-3.0.5.RELEASE.jar spring-context-3.0.5.RELEASE.jar spring-context-support-3.0.5.RELEASE.jar spring-asm-3.0.5.RELEASE.jar spring-expression-3.0.5.RELEASE.jar spring.transaction-3.0.5.RELEASE.jar spring-web-3.0.5.RELEASE.jar
二、Spring配置:
//普通bean<bean id="testService" class="com.test.core.service.testService"/>//定义调用对象和调用对象的方法<bean id="testTask"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 调用的类 --> <property name="targetObject" ref="testService"/> <!-- 调用类中的方法 --> <property name="targetMethod" value="testStart"/></bean>//设置触发时间<bean id="testTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <!-- 定时任务执行bean --> <property name="jobDetail" ref="testTask" /> <!-- 调度工厂实例化后,经过0秒开始执行调度 --> <property name="startDelay" value="0" /> <!-- 每隔一分钟调度一次 --> <property name="repeatInterval" value="60000" /> </bean>//定时任务总管理bean,注意bean的顺序,不可颠倒<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="testTrigger" /> </list> </property> </bean>
三、配置作业调度的触发方式
1、Quartz的作业触发器有两种,分别是:
org.springframework.scheduling.quartz.SimpleTriggerBeanorg.springframework.scheduling.quartz.CronTriggerBean
第一种SimpleTriggerBean,只支持按照一定频度调用任务,例如每隔30分钟运行一次。
配置方式如下:
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="job1" /> <property name="startDelay" value="0" /><!-- 调度工厂实例化后,经过0秒开始执行调度 --> <property name="repeatInterval" value="2000" /><!-- 每2秒调度一次 --> </bean>
第二种CronTriggerBean,支持到指定时间运行一次,如每天12:00运行一次等。
配置方式如下:
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="job1" /> <!—每天12:00运行一次 --> <property name="cronExpression" value="0 0 12 * * ?" /> </bean>
- 区间 * 通配符 ? 你不想设置那个字段
CRON表达式 含义
"0 0 12 * * ?" 每天中午十二点触发 "0 15 10 ? * *" 每天早上10:15触发 "0 15 10 * * ?" 每天早上10:15触发 "0 15 10 * * ? *" 每天早上10:15触发 "0 * 14 * * ?" 每天从下午2点开始到2点59分每分钟一次触发 "0 0/5 14 * * ?" 每天从下午2点开始到2:55分结束每5分钟一次触发 "0 0/5 14,18 * * ?" 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发 "0 0-5 14 * * ?" 每天14:00至14:05每分钟一次触发 "0 10,44 14 ? 3 WED" 三月的每周三的14:10和14:44触发 "0 15 10 ? * MON-FRI" 每个周一、周二、周三、周四、周五的10:15触发
阅读全文
0 0
- spring中使用quartz实现定时任务
- spring使用Quartz实现定时任务
- 使用spring quartz实现定时任务
- 使用spring quartz实现定时任务
- 使用spring quartz实现定时任务
- spring里面使用quartz实现定时任务
- 使用Spring + quartz实现定时任务调度
- 使用Spring+Quartz实现定时任务
- 如何使用spring 定时调度 【 Spring+Quartz实现定时任务 】
- Spring+Quartz实现定时任务
- spring+quartz实现定时任务
- Spring + Quartz 实现定时任务
- Quartz + Spring 实现定时任务
- spring+quartz实现定时任务
- spring+quartz实现定时任务
- Spring+Quartz实现定时任务
- Spring+quartz 实现定时任务
- spring+quartz实现定时任务
- Android四大组件
- webWorker
- NOIP 模拟题 【hao】【kun】【nan】
- Android开发的经典入门教材和学习路线?
- iOS 系统中,H.264 视频流可以硬件解码吗? 具体如何实现?
- 使用Spring+Quartz实现定时任务
- 题目1369:字符串的排列
- 递归算法介绍和使用
- 面试题33:把数组排成最小的数
- Vue-cli单文件组件引入less、sass、css样式的不同方法
- java自定义异常配合枚举
- tensorflow70 《深度学习原理与TensorFlow实战》05 RNN能说会道 01 正弦序列预测
- yii建表——数据迁移
- 缓存常用算法及实现原理