spring的定时任务配置分为三个步骤:
1、定义任务
2、任务执行策略配置
3、启动任务

1、定义任务

<!--要定时执行的方法-->
<bean id="testTaskJob"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<!--指定要定时执行的方法所在类,将定时任务定义成bean-->
<ref bean="testTask" />
</property>
<property name="targetMethod">
<!--指定定时执行的方法-->
<value>execute</value>
</property>
<property name="concurrent">
<!--指定目标封装为有状态的任务,有状态的任务不能并发执行,无状态的任务可并发执行-->
<value>false</value>
</property>
</bean>

2、任务执行策略配置

(1)指定重复间隔的定时任务

<!-- 调度时间设置-->
<bean id="testTaskJobTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<ref bean="testTaskJob" />
</property>
<!-- 延时启动时间,单位ms -->
<property name="startDelay" value="60000"></property>
<!-- 重复间隔时间,单位ms -->
<property name="repeatInterval" value="60000">
</property>
</bean>

(2)按周期执行的任务

<!-- 定义触发时间 --><bean id="doTime"class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail"><ref bean="testTaskJob" /></property><!-- cron表达式,此处是每天10点42执行 --><property name="cronExpression"><value>0 42 10 * * ?</value></property></bean>

3、启动任务

<!--启动工作-->
<bean lazy-init="false"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- 这里添加多个定时任务触发器,对应第2步的bean id -->
<ref local="testTaskJobTrigger" />
</list>
</property>
</bean>

至此,系统启动的时候,就能加载定时任务,并按照指定的定时策略执行。

对于一次性定时任务,一般有如下几种形式:(1)使用spring的init方法;(2)在使用时判断是否需要加载,确保只执行一次。

cron表达式的基本使用:
 
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /
表达式意义
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
每天早上6点
0 6 * * *
每两个小时
0 */2 * * *
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * *
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3
1月1日早上4点
0 4 1 1 *

例:

<!-- 制定目标对象,制定目标对象的运行方法 -->
<bean id="jobDetailFactoryBean" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  <property name="targetObject" ref="quartzServiceImpl" />  <property name="targetMethod" value="doIt" />
</bean>  <!-- 制定任务的运行策略 -->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  <property name="jobDetail" ref="jobDetailFactoryBean" />  <property name="cronExpression" value="5/15 * * * * ?" />
</bean>  <!-- 启动定时器 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  <property name="triggers">  <list>  <ref bean="cronTrigger" />  </list>  </property>
</bean>  

spring 配置定时任务相关推荐

  1. @scheduled注解配置时间_探究 Spring 的定时任务配置

    作者 | 郭朝兴 责编 | Elle 最近在项目开发中进行了一些Spring定时任务的开发工作,在开发过程中对Spring定时任务的配置方式进行了一些研究,现在对各种配置方式进行一个总结.Schedu ...

  2. Spring Task定时任务的配置和使用详解

    spring中使用定时任务 1.基于xml配置文件使用定时任务 首先配置spring开启定时任务 <beans xmlns="http://www.springframework.or ...

  3. @scheduled注解配置时间_Java开发重写Spring Boot定时任务,支持可动态调整执行时间...

    Spring Boot应该是目前最火的java开源框架了,它简化了我们创建一个web服务的过程,让我们可以在很短时间.基本零配置就可以启动一个web服务. 定时任务在我们平常的业务开发用的非常多,Sp ...

  4. 探究 Spring 的定时任务配置

    作者 | 郭朝兴 责编 | Elle 出品 | CSDN(ID:CSDNnews) 最近在项目开发中进行了一些Spring定时任务的开发工作,在开发过程中对Spring定时任务的配置方式进行了一些研究 ...

  5. Spring中定时任务Quartz集群配置学习

    Spring中定时任务Quartz集群配置学习 原来配置的Quartz是通过spring配置文件生效的,发现在非集群式的服务器上运行良好,但是将工程部署到水平集群服务器上去后改定时功能不能正常运行,没 ...

  6. Spring Boot配置定时任务

    SpringBoot配置定时任务可以直接使用自带的Scheduled,这相当于一个轻量级的Quartz,它可以让我们直接使用注解来完成定时任务的配置. @Configuration @EnableSc ...

  7. 动态配置定时任务(Spring Boot + quartz 的整合)

    在整个项目规划中,有的时候需要定时的去执行某一段代码,触发时间能随时修改,并且不影响项目的整体运行.所以,定时器的设计就必须要灵活,能随时的增,删,改定时任务. 数据库设计 CREATE TABLE ...

  8. springboot整合Quartz实现动态配置定时任务

    版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/liuchuanhong1/article/details/60873295 前言 在我们日常的开发中,很多 ...

  9. Spring之定时任务基本使用篇

    文章链接:https://liuyueyi.github.io/hexblog/2018/08/01/180801-Spring之定时任务基本使用篇/ Spring之定时任务基本使用篇 spring- ...

最新文章

  1. pytest测试实战 电子书_pytest实战APL测试框架
  2. 20165114 《网络对抗技术》 Exp0 Kali安装与配置 Week1
  3. LDAP命令介绍---dstune
  4. python调用系统命令_linux里面python调用系统命令问题
  5. 周末舞会(信息学奥赛一本通-T1332)
  6. linux命令grep和find怎么用,Linux下find和grep常用命令及区别介绍
  7. sql语句distinct_带DISTINCT子句SQL SELECT语句
  8. cocos2d-X   CCSprite设置贴图(图片)大小
  9. idea中resources下的logback-spring的配置
  10. 西威变频器使用说明书_西威变频器说明书 (1)
  11. C++模板技术实现 泛型编程,通俗易懂的泛型编程教程//。
  12. 正确认识计算机专业,如何正确认识计算机科学与技术专业
  13. Spoken English-口语-发音规则
  14. 新概念二册 Lesson 12 Goodbye and good luck再见,一路顺风 (一般将来时)
  15. 你的个人化身及身份的黑盒子
  16. HIbernate关联映射小案例(CRUD)
  17. 大数据基础(三):​​​​​​​​​​​​​​​​​​​​​大数据应用场景
  18. linux系统程序问题报告,Linux程序设计实验报告.docx
  19. Sublime修改成为Python编辑器,设置系统环境变量
  20. php常用系统函数库,PHP常用函数大全

热门文章

  1. gltexsubimage2d 性能_风水轮流转!AMD R5 5600X单核性能碾压十代i9
  2. 代码模板在哪里_C++的可变参数模板
  3. ps自定义形状工具_【福利】3000款PS自定义形状免费打包下载
  4. 大连开发区中老年运动微信群_消暑!大连近郊最受欢迎的海滨浴场集合来啦
  5. android intent.putextras,关于android:如何使用putExtra()和getExtra()来表示字符串数据
  6. java 拼sql最大长度,java.sql.SQLNonTransientConnectionException: 用户 ID 长度 (0) 超出 1 到 255 的范围...
  7. aspen怎么做灵敏度分析_数据分析终极难题:数据分析怎么做才能驱动业务?
  8. python主线程执行_Python队列 – 最多运行n个线程
  9. catv系统主要有哪三部分组成_光纤放大器在DWDM传输系统中的应用
  10. java面试题二十四 继承题2