转载自:http://blog.csdn.net/sundenskyqq/article/details/8108482
承接上一篇文章(spring定时任务的基本操作 简单示例):
二、spring定时任务 : 多个任务和执行时间间隔配置
1、多个任务的使用:
第一步:写好执行定时任务的类和方法(多个,参考上一篇文章)
第二步:配置配置文件:(参考上一篇文章)
<bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <!--必须,QuartzScheduler 延时启动,应用启动后 QuartzScheduler 再启动--> <property name="startupDelay" value="60"/> <!-- 普通触发器 :触发器列表,(可以配置多个任务)--> <property name="triggers"> <list> <ref local="testTrigger"/> <ref local="testTrigger1"/> <ref local="testTrigger2"/> </list> </property> </bean> <!-- 配置执行定时任务的类和方法0 --> <bean id="testDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <bean class="com.test.Test"></bean> </property> <property name="targetMethod"> <value>test</value> </property> </bean> <!-- 配置触发器0 --> <bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="testDetail"/> <!-- 触发器触发的 执行定时任务的bean --> </property> <property name="cronExpression"> <!-- 每天23时 --> <!-- 定时任务执行的间隔 --> <value>0 0 23 * * ?</value> </property> </bean> <!-- 配置执行定时任务的类和方法 1--> <bean id="testDetail1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <bean class="com.test.Test1"></bean> </property> <property name="targetMethod"> <value>test1</value> </property> </bean> <!-- 配置触发器1 --> <bean id="testTrigger1" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="testDetail1"/> <!-- 触发器触发的 执行定时任务的bean --> </property> <property name="cronExpression"> <!-- 每天23时 --> <!-- 定时任务执行的间隔 --> <value>0 0 23 * * ?</value> </property> </bean> <!-- 配置执行定时任务的类和方法2 --> <bean id="testDetail2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <bean class="com.test.Test2"></bean> </property> <property name="targetMethod"> <value>test2</value> </property> </bean> <!-- 配置触发器 2--> <bean id="testTrigger2" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="testDetail2"/> <!-- 触发器触发的 执行定时任务的bean --> </property> <property name="cronExpression"> <!-- 每天23时 --> <!-- 定时任务执行的间隔 --> <value>0 0 23 * * ?</value> </property> </bean>
2、执行任务时间间隔设置:
字段允许值允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / LW 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 ? 3WED" 每年三月的星期三的下午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 ? * 6L2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? *6#3" 每月的第三个星期五上午10:15触发
相关推荐
在Spring框架中,定时任务是实现自动化操作的重要手段,它允许开发者在特定时间点执行特定的任务,例如数据清理、报表生成等。本篇文章将详细探讨Spring中的定时...希望这些知识对您在实现Spring定时任务时有所帮助。
2. **定义定时任务**:在需要执行定时任务的类上,我们可以定义一个或多个`@Scheduled`注解的方法。例如: ```java @Service public class MyTaskService { @Scheduled(fixedRate = 5000) // 每隔5秒执行一次 ...
3、SpringCloudSchedule定时任务(使用mybatis读写mysql数据库, spring实现定时任务, 按照间隔时间或固定时间方式执行定时任务) 4、定时自动运行任务(在数据库中设置好定时时间,及运行的程序,及参数) 5、C#...
Spring定时任务是Spring框架中的一个强大特性,它允许开发者在应用程序中设置定时任务,以便在预定义的时间间隔执行特定的任务。这个功能对于实现自动化、批处理、数据同步、监控等多种业务场景非常有用。在本篇中,...
本例主要探讨如何在Spring中配置和执行定时任务。 首先,我们要引入Spring Task的相关依赖。如果你使用的是Maven,你需要在pom.xml文件中添加以下依赖: ```xml <groupId>org.springframework.boot <artifactId>...
总结,实现一套完整的直接配置执行定时任务的方法,需要结合合适的定时任务框架,通过数据库存储任务信息,设定任务扫描器和执行器,以及实现任务互斥机制。这样,我们就能构建出一个稳定、灵活的定时任务管理系统,...
在IT领域,尤其是在Java开发中,定时任务是一个非常常见的需求,用于执行周期性的任务,比如数据备份、报表生成、系统监控等。Spring框架提供了一系列工具来支持定时任务的实现,其中包括Spring自带的`spring-task`...
它可以设置多个参数来控制任务的执行方式和频率,如: - `fixedRate`: 以固定的延迟时间执行,单位是毫秒。 - `fixedDelay`: 上一次执行结束到下一次执行开始的间隔,也是以毫秒计。 - `cron`: 使用Cron表达式...
Spring定时任务支持更多的功能,比如任务执行的并发控制、任务执行的监听器、以及使用Quartz等第三方调度库进行更复杂的任务调度。 总结,Spring定时任务为开发者提供了方便的API和注解,使我们可以轻松地在Java...
### Spring 多个定时任务 Quartz 配置详解 #### 一、Spring与Quartz集成概述 Spring 是一款轻量级的 Java 开发框架,而 Quartz 是一个强大的作业调度框架。两者结合可以方便地实现定时任务的功能。通过 Spring 来...
你可以通过多个属性来设置任务的执行规则,例如: - `fixedRate`:设置任务以固定速率(毫秒)执行。 - `fixedDelay`:设置任务每次执行后的间隔时间(毫秒)。 - `cron`:使用Cron表达式定义任务的执行时间。 ...
总结起来,Spring定时任务结合多线程可以有效地提高系统的并发能力,使得在预设的时间间隔内,多个任务能并行执行,从而提高整体的处理效率。在实际开发中,根据业务需求调整定时任务的触发频率和线程池的配置,可以...
这种方式与注解类似,但配置更为灵活,可以定义多个定时任务。 除了Spring自带的定时任务支持,还可以结合Quartz库来实现更复杂的定时策略。Quartz是一个开源的作业调度框架,它提供了丰富的API来创建、调度和管理...
你需要提供一个或多个参数,如`fixedRate`(固定间隔时间)、`cron`(Cron表达式)等,来指定任务的执行频率。例如: ```java @Component public class MyTask { @Scheduled(fixedRate = 5000) // 每5秒执行一次...
总结起来,Spring提供了两种方式来处理定时任务:内置的基于注解的定时任务和集成Quartz Scheduler。前者适合简单的定时需求,而后者则为复杂的需求提供了更多灵活性和控制力。在实际开发中,应根据项目需求选择合适...
-- 任务间隔时间(sleep时间)执行完第一组任务,执行第二组任务相隔时间,两个任务在时间上不应该相交 --> <bean id="springScheduledExecutorFactoryBean" class="org.springframework.scheduling.concurrent....
Spring通过`@Scheduled`注解提供了对定时任务的支持,该注解可以轻松地应用于任何Java方法上,使得开发者能够以声明式的方式来配置和执行定时任务。 ### @Scheduled 注解详解 `@Scheduled`注解主要用于方法级别,...
总结来说,Quartz是Java中强大的定时任务库,通过它我们可以方便地创建和管理复杂的任务调度,包括但不限于在特定时间点执行任务、按固定间隔重复执行、甚至在满足特定条件时触发任务。相比`java.util.Timer`,...
在Spring框架中,时间间隔启动类(通常指的是定时任务或者定时器)是实现应用程序定期执行特定任务的关键组件。这类启动类允许我们按照预设的时间间隔执行任务,这对于系统维护、数据处理、报告生成等场景非常有用。...
以上每个jar包都是Spring定时任务实现中的关键组件,确保它们在类路径中正确配置,能帮助开发者轻松地创建、管理和调度任务。在实际项目中,除了这些核心库,还可能需要根据具体需求添加其他依赖,如数据库驱动、...