Cron表达式使用格式
Seconds | Minutes | Hours | DayofMonth | Month | DayofWeek | [Year] |
秒 | 分 | 时 | 天 | 月 | 周 | [年] |
每个符号代表的含义:
- *:匹配该域的任意值;如*用在分所在的域,表示每分钟都会触发事件。
- ?:匹配该域的任意值。
- -:匹配一个特定的范围值;如时所在的域的值是10-12,表示10、11、12点的时候会触发事件。
- ,:匹配多个指定的值;如周所在的域的值是2,4,6,表示在周一、周三、周五就会触发事件(1表示周日,2表示周一,3表示周二,以此类推,7表示周六)。
- /:左边是开始触发时间,右边是每隔固定时间触发一次事件,如秒所在的域的值是5/15,表示5秒、20秒、35秒、50秒的时候都触发一次事件。
- L:last,最后的意思,如果是用在天这个域,表示月的最后一天,如果是用在周所在的域,如6L,表示某个月最后一个周五。(外国周日是星耀日,周一是月耀日,一周的开始是周日,所以1L=周日,6L=周五。)
- W:weekday,工作日的意思。如天所在的域的值是15W,表示本月15日最近的工作日,如果15日是周六,触发器将触发上14日周五。如果15日是周日,触发器将触发16日周一。如果15日不是周六或周日,而是周一至周五的某一个,那么它就在15日当天触发事件。
- #:用来指定每个月的第几个星期几,如6#3表示某个月的第三个星期五。
实用的例子 表达式 含义
“0 0 12 * * ?” | 每天12:00触发事件 |
“0 15 10 ? * *” | 每天10:15触发事件 |
“0 15 10 * * ?” | 每天10:15触发事件 |
“0 15 10 * * ? *” | 每天10:15触发事件 |
“0 15 10 * * ? 2005″ | 2005年的每天10:15触发事件 |
“0 * 14 * * ?” | 每天14点开始触发,每分钟触发一次,14:59分结束 |
“0 0/5 14 * * ?” | 每天14点开始触发到14:59分结束的每5分钟触发一次事件 |
“0 0/5 14,18 * * ?” | 每天14点开始到14:59期间和18点到18:59期间的每5分钟触发一次事件 |
“0 0-5 14 * * ?” | 每天14点到14:05期间的每1分钟触发一次事件 |
“0 10,44 14 ? 3 WED” | 每年3月的星期三的14:10和14: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触发一次事件 |
相关推荐
在`spring.xml`配置文件中,我们可以看到如何将Spring Task和Quartz集成到Spring应用中。配置Spring Task通常只需要开启调度器和配置`@Scheduled`注解的扫描。对于Quartz,我们需要配置`SchedulerFactoryBean`,包括...
Spring Task可以使用Cron表达式来精确控制任务的执行时间。Cron表达式是一种标准的时间表达方式,可以表示复杂的定时规则。 ```java @Scheduled(cron = "0 0/5 * * * ?") // 每5分钟执行一次 public void cronTask...
要利用cron表达式,我们需要引入Spring框架或者Quartz库。 Spring框架提供了一个名为`@Scheduled`的注解,可以方便地实现定时任务。我们可以将这个注解放在方法上,然后在方法的参数中使用cron表达式来定义执行计划...
`spring-context-support.jar`是Spring框架对Quartz和Commons JCR等第三方调度库的支持,同时也包含Spring自己的`TaskExecutor`和`TaskScheduler`接口,用于实现异步任务和定时任务。 1. **Spring TaskExecutor**: ...
本话题主要关注Spring框架中的Schedule功能以及Quartz库的使用,它们都是Java世界中广泛采用的任务调度解决方案。 首先,让我们理解"Schedule"的概念。在计算机系统中,Schedule指的是预先设定的任务执行计划,它...
4. 创建Trigger,定义触发Job的规则,如`<bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">`,并设置cron表达式。 5. 将JobDetail和Trigger关联到Scheduler中,使用`...
Quartz支持CRON表达式,可以创建复杂的调度规则,同时支持集群环境下的任务调度。`quartz-all-1.6.0.jar`包含了Quartz的核心功能。 **Spring与Quartz集成** Spring与Quartz的集成主要通过`org.springframework....
首先,Spring Schedule是Spring Framework的一部分,它提供了基于Java的API(`@Scheduled`注解)以及XML配置的方式来实现定时任务。通过这个特性,开发者可以在预定义的时间间隔内执行特定的方法,用于处理例如数据...
你可以定义复杂的调度规则,如按照特定日期、时间间隔或者复杂的CRON表达式来触发任务。Spring通过`JobDetail`定义任务,`Trigger`定义触发器,结合`Scheduler`进行调度。Spring的`@Scheduled`注解也可以与Quartz...
本文将详细探讨Spring的定时任务机制以及Quartz的使用。 一、Spring Task Scheduler 1. `@Scheduled`注解:Spring 3.0引入了`@Scheduled`注解,允许在方法上声明一个定时任务。例如: ```java import org.spring...
相比于`Timer`,Quartz 支持更复杂的定时表达式、多线程任务执行以及更丰富的任务调度策略。Quartz 可以通过 Cron 表达式或者基于时间间隔的方式来安排任务。 首先,需要在项目中引入Quartz依赖,然后创建一个Job类...
在以上示例中,`MyQuartzJob`是一个Quartz作业,`initScheduler`方法会在Spring启动时配置这个作业,使其按照指定的CRON表达式执行。 总结起来,如果你的应用只需要简单的定时任务,并且不想引入额外的库,Spring ...
在本文中,我们将深入探讨Spring Boot中的定时任务,包括如何使用Spring Boot的内置Task调度器以及集成Quartz第三方库来实现复杂的时间调度。这些技术在实际项目开发中极为常见,帮助开发者实现自动化任务,如数据...
总结起来,"schedule-task-to-object.zip"可能是一个关于Java定时任务的示例,涵盖了Spring的`@Scheduled`注解、`TaskScheduler`以及可能的Quartz库的使用。这些技术都是Java开发中管理和调度周期性任务的重要工具,...
本篇文章将详细探讨Spring中的定时任务,包括配置方式、注解实现以及集成Quartz库进行更复杂的定时调度。 1. **Spring配置定时任务** 在Spring中,我们可以使用`<task:*>`命名空间来配置定时任务。首先,需要在...
SpringBoot作为轻量级的框架,简化了Spring应用的初始搭建以及开发过程,而Quartz则是一个功能强大的作业调度框架,可以精确地控制任务的执行时间和频率。 在SpringBoot项目中集成Quartz,首先需要引入相关的依赖。...
在IT行业中,Spring Boot、Quartz和MySQL是三个非常重要的技术组件,它们分别代表了微服务开发框架、任务调度框架和关系型数据库管理系统。这里我们将深入探讨如何将它们结合使用,构建一个基于Spring Boot的动态...
除了`fixedRate`和`cron`,Spring Schedule还支持其他的调度策略,如`fixedDelay`(上一个任务执行结束后的延迟时间),以及通过`initialDelay`设置首次执行的延迟时间。这些策略可以根据实际需求灵活选择。 ### ...
`CronTrigger`是基于cron表达式的触发器,而`FixedRateTrigger`则用于按固定间隔执行任务。 4. `TaskExecutor`接口:用于执行异步任务,虽然不是专门的定时任务接口,但在某些场景下,我们可以结合`TaskScheduler`...
本篇文章将深入探讨Java中的三种主要时间调度实现:`Timer`、`TimerTask`、以及第三方库`Quartz`和`Spring`的定时任务功能。 ### 1. Java `Timer` 和 `TimerTask` `java.util.Timer` 类提供了一个调度任务的方法,...