秒 |
0-59 |
, - * / |
||
分 |
0-59 |
, - * / |
||
小时 |
0-23 |
, - * / |
||
日期 |
1-31 |
, - * / L W C |
||
月份 |
1-12 或者 JAN-DEC |
, - * / |
||
星期 |
1-7 或者 SUN-SAT |
, - * / L C # |
||
年(可选) |
留空, 1970-2099 |
, - * / |
如上面的表达式所示:
“*”字符被用来指定所有的值。如:”*“在分钟的字段域里表示“每分钟”。
“-”字符被用来指定一个范围。如:“10-12”在小时域意味着“10点、11点、12点”。
“,”字符被用来指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”.
“?”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你需要通过在这两个域中的一个来指定一些东西的时候,它是有用的。看下面的例子你就会明白。
“L”字符指定在月或者星期中的某天(最后一天)。即“Last ”的缩写。但是在星期和月中“L”表示不同的意思,如:在月子段中“L”指月份的最后一天-1月31日,2月28日,如果在星期字段中则简单的表示为“7”或者“SAT”。如果在星期字段中在某个value值得后面,则表示“某月的最后一个星期value”,如“6L”表示某月的最后一个星期五。
“W”字符只能用在月份字段中,该字段指定了离指定日期最近的那个星期日。
“#”字符只能用在星期字段,该字段指定了第几个星期value在某月中
"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触发 |
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 *
定时批处理作业是J2EE企业应用里很重要的一环,用来在晚间进行财务挂账,数据转存,新闻联播等等操作。
而在Spring里,已经很好的集成了Quartz,简单到像配cron一样,在xml文件里面配一下时间就可以自动执行,不需要写一行代码。Spring对Quartz大刀阔斧的简化堪称范例,Quartz项目组也许可以学习一下。
<bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"><ref bean="financeDAO"/></property> <property name="targetMethod"><value>confirmOrder</value></property> </bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="methodInvokingJobDetail"/> </property> <property name="cronExpression"> <value>0 0 6,12,20 * * ?</value> </property> </bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list><ref local="cronTrigger"/></list> </property> </bean>
上面这段配置文件规定了在早上6点和晚上8点执行financeDAO对象的confirmOrder()方法.
相关推荐
### Spring执行定时任务的规则详解 在Spring框架中,实现定时任务主要依赖于Spring的集成模块Spring Integration或通过集成第三方库如Quartz来完成。本文将重点介绍如何利用Spring框架结合表达式规则来配置和执行...
在Spring框架中,定时任务是实现自动化操作的重要手段,它允许开发者在特定的时间间隔执行特定的任务,例如数据清理、报表生成等。在本实例中,我们关注的是Spring 3.0版本中的定时任务功能,这是一个基于Web工程的...
在本文中,我们将深入探讨Spring的定时任务功能,包括如何配置、创建和执行定时任务,以及如何利用其进行测试。 1. **Spring Task模块**: Spring在其核心模块中包含了Task模块,它提供了异步任务执行和定时任务...
在Spring框架中,XML配置是传统且广泛使用的方式来设置应用的组件和行为,包括实现定时任务。定时任务在软件开发中扮演着重要角色,它允许应用程序在预设的时间执行特定的任务,例如数据清理、日志归档或者发送通知...
在Spring框架中,定时任务是实现自动化操作的重要组成部分,它允许开发者在特定的时间间隔执行一些重复性的任务。本文将深入探讨Spring中的定时任务,并结合Eclipse和Maven项目环境进行讲解。 首先,Spring提供了两...
在需要执行定时任务的方法上添加@Scheduled注解,并指定cron表达式或fixedRate/fixedDelay参数,即可实现定时任务。Spring会自动扫描并注册这些任务,无需额外配置。例如: ```java @Component public class ...
3、SpringCloudSchedule定时任务(使用mybatis读写mysql数据库, spring实现定时任务, 按照间隔时间或固定时间方式执行定时任务) 4、定时自动运行任务(在数据库中设置好定时时间,及运行的程序,及参数) 5、C#...
2. **定义定时任务**:在需要执行定时任务的类上,我们可以定义一个或多个`@Scheduled`注解的方法。例如: ```java @Service public class MyTaskService { @Scheduled(fixedRate = 5000) // 每隔5秒执行一次 ...
2.通过Spring是JAR-quartz写的一个定时任务 1)普通的定时任务,定时完成指定的任务 2)通过前台动态分配定时任务 可指定多个任务,可同时执行任务,可以精确到时分秒扫描并执行任务 3)可以完成稍微复杂点的任务 ...
Spring的定时任务功能使得在Web项目中实现周期性任务变得轻松,无论是简单的定时执行还是复杂的调度需求,都有相应的解决方案。结合`@Scheduled`注解和`TaskScheduler`接口,开发者可以灵活地控制任务的执行时机和...
其中,Spring的定时任务功能是许多项目中的重要组成部分,它允许开发者安排和执行周期性的任务。本文将详细探讨Spring定时任务的关键知识点,并与提供的jar包列表关联。 首先,Spring定时任务主要依赖于`spring-...
本例主要探讨如何在Spring中配置和执行定时任务。 首先,我们要引入Spring Task的相关依赖。如果你使用的是Maven,你需要在pom.xml文件中添加以下依赖: ```xml <groupId>org.springframework.boot <artifactId>...
一个tomcat下部署了两个应用,一个是普通web应用syncc,另一个应用syncc_wx属于微信公众号后台程序涉及消息定时推送,tomcat未分离...”spring定时任务执行两次的异常排查处理.docx"针对上述描述问题进行分析和解决。
TimerTask是一个抽象类,我们需要创建它的一个子类,并重写run方法来执行定时任务的具体内容。使用这种方式,程序可以按照一定的频率执行,但这种方式是单线程的,所以不适合执行复杂的、高频率的定时任务。 接着是...
另外,`spring-aop.jar`对于使用基于AOP的方式来定义和执行定时任务是必须的。AOP允许我们在不修改原有代码的情况下,通过切面来增强功能,例如记录日志、性能监控等,这对于定时任务的管理和监控非常有用。 在Java...
Spring框架提供了多种方式来实现定时任务,这使得开发者可以在不同场景下选择最适合的方案。本文主要探讨了Spring中实现定时任务的三种主要方法:Java的`java.util.Timer`、Quartz库以及Spring自身的Task调度器。 ...
综上所述,通过Spring Cloud Schedule和MyBatis,我们可以方便地构建出按间隔时间或固定时间执行的定时任务,实现对MySQL数据库的高效读写。在实际开发中,可以根据业务需求灵活调整任务的执行策略,确保系统的稳定...
在多应用服务器负载均衡环境下,Spring Quartz定时任务的重复执行问题是一个常见的挑战。Spring Quartz是一个强大的、开源的作业调度框架,允许开发者定义和执行复杂的定时任务。然而,当多个服务器实例并行运行时,...