`
rainbow686
  • 浏览: 163885 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

quartz cron 表达式详解

    博客分类:
  • Java
阅读更多
quartz cron 表达式详解

字段         允许值               允许的特殊字符  
秒           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”在星期域里表示”星期一、星期三、星期五”。

“/”字符用于指定增量。如:“0/15”在秒域意思是没分钟的0,15,30和45秒。“5/15”在分钟域表示没小时的5,20,35和50。符号“*”在“/”前面(如:*/10)等价于0在“/”前面(如:0/10)。记住一条本质:表达式的每个数值域都是一个有最大值和最小值的集合,如:秒域和分钟域的集合是0-59,日期域是1-31,月份域是1-12。字符“/”可以帮助你在每个字符域中取相应的数值。如:“7/6”在月份域的时候只有当7月的时候才会触发,并不是表示每个6月。

L是‘last’的省略写法可以表示day-of-month和day-of-week域,但在两个字段中的意思不同,例如day-of-month域中表示一个月的最后一天。如果在day-of-week域表示‘7’或者‘SAT’,如果在day-of-week域中前面加上数字,它表示一个月的最后几天,例如‘6L’就表示一个月的最后一个星期五。

字符“W”只允许日期域出现。这个字符用于指定日期的最近工作日。例如:如果你在日期域中写 “15W”,表示:这个月15号最近的工作日。所以,如果15号是周六,则任务会在14号触发。如果15好是周日,则任务会在周一也就是16号触发。如果是在日期域填写“1W”即使1号是周六,那么任务也只会在下周一,也就是3号触发,“W”字符指定的最近工作日是不能够跨月份的。字符“W”只能配合一个单独的数值使用,不能够是一个数字段,如:1-15W是错误的。

“L”和“W”可以在日期域中联合使用,LW表示这个月最后一周的工作日。

字符“#”只允许在星期域中出现。这个字符用于指定本月的某某天。例如:“6#3”表示本月第三周的星期五(6表示星期五,3表示第三周)。“2#1”表示本月第一周的星期一。“4#5”表示第五周的星期三。

字符“C”允许在日期域和星期域出现。这个字符依靠一个指定的“日历”。也就是说这个表达式的值依赖于相关的“日历”的计算结果,如果没有“日历”关联,则等价于所有包含的“日历”。如:日期域是“5C”表示关联“日历”中第一天,或者这个月开始的第一天的后5天。星期域是“1C”表示关联“日历”中第一天,或者星期的第一天的后1天,也就是周日的后一天(周一)。

表达式举例:
  
"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 * * *              每天早上6点
0 */2 * * *            每两个小时
0 23-7/2,8 * * *      晚上11点到早上8点之间每两个小时,早上八点
0 11 4 * 1-3           每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 4 1 1 *              1月1日早上4点
分享到:
评论

相关推荐

    Quartz_cron表达式

    ### Quartz Cron 表达式详解 #### 一、概述 Quartz是一款强大的开源作业调度框架,广泛应用于Java应用程序中,用于实现定时任务的功能。Quartz支持多种触发器类型,其中最为灵活且功能强大的是CronTrigger,它允许...

    Quartz Cron表达式

    ### Quartz Cron表达式详解 #### 一、CronTrigger与SimpleTrigger对比 在Quartz调度器中,`CronTrigger`是一种非常强大的触发机制,它能够根据复杂的日历规则来调度任务,相比于`SimpleTrigger`而言更为灵活。如果...

    Quartz的cron表达式

    Quartz 的 cron 表达式详解 Quartz 的 cron 表达式是一个强大的调度工具,用于设置定时任务的执行时间。它由七个字段组成,分别是秒、分钟、小时、天(月)、月、天(星期)和年份。每个字段可以设置特定的值、范围...

    quartz cron js生成器

    **Quartz Cron表达式详解:** Cron表达式由7个子表达式组成,每个子表达式代表不同的时间元素,从左到右依次为:秒、分钟、小时、日期、月份中的日期、月份、星期几。每个子表达式可以是一个固定的值、范围、列表、...

    quartz的cron表达式

    ### quartz的cron表达式知识点详解 #### 一、cron表达式概述 cron表达式是一种用于配置定时任务执行规则的语言,广泛应用于Quartz等调度框架中。通过cron表达式,我们可以非常灵活地定义任务的执行时间,包括精确到...

    Spring集成Quartz定时任务框架介绍和Cron表达式详解

    本文将深入探讨如何在Spring项目中集成Quartz,并详细解析Cron表达式,以便更好地理解和运用定时任务。 首先,集成Quartz到Spring项目中通常涉及以下步骤: 1. **引入依赖**:在项目的pom.xml或build.gradle文件中...

    cron表达式(quartz中时间表达式)

    ### cron表达式详解 cron表达式是由7个子表达式组成的字符串,每个子表达式之间用空格分隔,代表不同的时间单位: 1. **秒(Seconds)**:0-59的整数,可包含逗号分隔的多个值或范围。 2. **分钟(Minutes)**:0-...

    Quartz的Cron表达式

    ### Quartz的Cron表达式详解 #### 一、Cron表达式概述 Cron表达式是一种用于配置定时任务执行频率的格式化字符串。在Quartz调度器中,CronTrigger类型的触发器支持Cron表达式来定义触发规则。Cron表达式由六个或七...

    quartz/Cron/Crontab表达式在线生成工具

    【Cron表达式详解】 Cron表达式是一种强大的时间调度机制,广泛应用于各种定时任务的配置,例如在Java中的Quartz框架。它是由七个子表达式组成的字符串,每个子表达式都代表一个时间维度(秒、分钟、小时、日期、...

    Cron表达式

    ### Cron表达式详解 #### 一、Cron表达式概述 Cron表达式是一种用于配置定时任务执行时间的标准格式,在很多系统中都有广泛的应用,比如Quartz调度器、Linux操作系统等。通过Cron表达式,我们可以灵活地设定任务...

    Cron表达式前台源码

    **Cron表达式详解** Cron表达式是一种广泛用于任务调度的语法,它允许我们设置时间规则来执行特定的任务。这种表达式源自Unix系统中的cron daemon,现在在各种编程语言和平台中都有应用,包括Java的Quartz框架、...

    Quartz定时任务表达式

    ### Quartz定时任务表达式详解 在探讨Quartz定时任务表达式的使用之前,我们先了解下Quartz是什么。Quartz是一个开源的作业调度框架,能够触发在指定时间运行的任务,广泛应用于Java应用程序中进行定时任务的管理。...

    Quartz_Cron.

    ### Quartz Cron 表达式详解 #### 一、Quartz 概述 Quartz 是一个全功能、开源的作业调度框架,能够定义触发器(Trigger)来触发在几乎任何环境中执行的任务(Job)。Quartz 提供了丰富的特性,包括但不限于支持...

    网页版cron的生成代码

    【标题】:“网页版cron的生成代码”涉及的是在网页环境中实现定时任务调度的一种方法,主要利用了Quartz Cron表达式。Quartz是Java领域的一个开源任务调度框架,而Cron表达式是Quartz中用于定义定时任务的一种时间...

    cron测试工具

    **cron表达式详解:** cron表达式由一系列由空格分隔的字段组成,每个字段代表不同的时间单位。例如,`* * * * * *` 表示每秒执行一次。每个字段可以是单个数值、范围(如1-5)、列表(1,3,5)或者通配符(*,代表...

    Quartz 的Cron时间设置.doc

    在Quartz框架中,Cron表达式通常用于Trigger对象来定义Job执行的时间规则。一个标准的Cron表达式由六个或七个字段组成,各字段之间通过空格分隔,其中六个字段是必需的,另一个是可选的。 #### 二、Cron表达式的...

    Spring Job 配置详解

    在 Spring 中 Quartz 的 Cron 配置是使用 Cron 表达式来指定 Trigger 的触发时机。Cron 表达式是一个由六至七个字段组成由空格分隔的字符串,其中六个字段是必须的,而一个是可选的。 以下是 Cron 表达式的字段解释...

    Quartz之CronExpression详解

    CronExpression是一种用于配置Quartz调度器中定时任务的表达式格式。通过这种格式化的字符串,用户能够灵活地定义任务执行的时间规律。CronExpression由六个或七个字段组成,各字段之间用空格分隔,具体包括秒、分、...

    spring整合Quartz框架过程详解

    本文主要介绍了 Spring 整合 Quartz 框架的过程详解,包括 Quartz 框架的简介、Quartz 框架的使用和 Cron 表达式的使用。通过本文的学习,读者可以了解如何使用 Quartz 框架来实现定时任务的调度。

    详解Javascript判断Crontab表达式是否合法

    在实际开发中,如果需要对Crontab表达式进行精确的验证,最好是参照Quartz等成熟任务调度库的实现逻辑。如果前端验证的精确性非常重要,则可能需要改进或替换现有的脚本,以确保表达式的准确性和任务调度的有效性。

Global site tag (gtag.js) - Google Analytics