`

quartz的作业调度触发Cron表达式说明

阅读更多
quartz的作业调度触发Cron表达式说明
Cron表达式
Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成,如表1所示:
-----
位置 时间域名  允许值 允许的特殊字符
1 秒   0-59         , - * /
2 分钟 0-59         , - * /
3 小时   0-23         , - * /
4 日期   1-31         , - * ? / L W C
5 月份 1-12         , - * /
6 星期   1-7         , - * ? / L C #
7 年(可选) 空值1970-2099 , - * /

Cron表达式的时间字段除允许设置数值外,还可使用一些特殊的字符,提供列表、范围、通配符等功能,细说如下:
●星号(*):可用在所有字段中,表示对应时间域的每一个时刻,例如,*在分钟字段时,表示“每分钟”;
●问号(?):该字符只在日期和星期字段中使用,它通常指定为“无意义的值”,相当于占位符;
●减号(-):表达一个范围,如在小时字段中使用“10-12”,则表示从10到12点,即10,11,12;
●逗号(,):表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五;
●斜杠(/):x/y表达一个等步长序列,x为起始值,y为增量步长值。如在分钟字段中使用0/15,则表示为0,15,30和45秒,而5/15在分钟字段中表示5,20,35,50,你也可以使用*/y,它等同于0/y;
●L:该字符只在日期和星期字段中使用,代表“Last”的意思,但它在两个字段中意思不同。L在日期字段中,表示这个月份的最后一天,如一月的31号,非闰年二月的28号;如果L用在星期中,则表示星期六,等同于7。但是,如果L出现在星期 字段里,而且在前面有一个数值X,则表示“这个月的最后X天”,例如,6L表示该月的最后星期五;
●W:该字符只能出现在日期字段里,是对前导日期的修饰,表示离该日期最近的工作日。例如 15W表示离该月15号最近的工作日,如果该月15号是星期六,则匹配14号星期五;如果15日是星期日,则匹配16号星期一;如果15号是星期二,那结 果就是15号星期二。但必须注意关联的匹配日期不能够跨月,如你指定1W,如果1号是星期六,结果匹配的是3号星期一,而非上个月最后的那天。W字符串只 能指定单一日期,而不能指定日期范围;
●LW组合:在日期字段可以组合使用LW,它的意思是当月的最后一个工作日;
●井号(#):该字符只能在星期字段中使用,表示当月某个工作日。如6#3表示当月的第三个星期五(6表示星期五,#3表示当前的第三个),而4#5表示当月的第五个星期三,假设当月没有第五个星期三,忽略不触发;
● C:该字符只在日期和星期字段中使用,代表“Calendar”的意思。它的意思是计划所关联的日期,如果日期没有被关联,则相当于日历中所有日期。例如5C在日期字段中就相当于日历5日以后的第一天。1C在星期字段中相当于星期日后的第一天。
Cron表达式对特殊字符的大小写不敏感,对代表星期的缩写英文大小写也不敏感。
表2下面给出一些完整的Cron表示式的实例:
表示式 说明

"0 0 12 * * ? "	每天12点运行
"0 15 10 ? * *"	每天10:15运行
"0 15 10 * * ?"	每天10:15运行
"0 15 10 * * ? *"	每天10:15运行
"0 15 10 * * ? 2008"	在2008年的每天10:15运行
"0 * 14 * * ?"	每天14点到15点之间每分钟运行一次,开始于14:00,结束于14:59。
"0 0/5 14 * * ?"	每天14点到15点每5分钟运行一次,开始于14:00,结束于14:55。
"0 0/5 14,18 * * ?"	每天14点到15点每5分钟运行一次,此外每天18点到19点每5钟也运行一次。
"0 0-5 14 * * ?"	每天14:00点到14:05,每分钟运行一次。
"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 2007-2009"	在2007,2008,2009年每个月的最后一个星期五的10:15分运行。
"0 15 10 ? * 6#3"	每月第三个星期五的10:15分运行。


Quartz是利用cron表达式来定义任务启动的时间。
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
如0 0 10,14 * * ? 2006.从左到右,这些元素的定义如下:
1.秒(0-59)
2.分钟(0-59)
3.小时(0-23)
4.月份中的日期(1-31)
5.月份(1-12或JAN-DEC)
6.星期中的日期(1-7或SUN-SAT)
7.年份(1970-2099)
其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?.
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时
表达式举例:
  
"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点
分享到:
评论

相关推荐

    Cron表达式生成器html源码

    Cron表达式是一种在计算机程序中广泛使用的定时任务调度工具,尤其在Java的Quartz框架中,它扮演着核心角色。Cron表达式允许我们用一种简洁的方式定义一系列的时间计划,比如每天的某个时间点执行某项任务。下面将...

    quartz的cron表达式生成工具

    Cron表达式源自Unix系统的crontab命令,用于配置定时任务,而在Quartz中,它被用来更加灵活地设定作业的触发时间。 标题提到的"quartz的cron表达式生成工具"是为了帮助开发者更方便地创建和理解复杂的Cron表达式。...

    Java 写的Cron表达式解析

    Java中的Cron表达式解析通常是通过Spring框架的`org.springframework.scheduling.support.CronSequenceGenerator`类或者第三方库如Quartz的`org.quartz.CronExpression`来实现。 首先,让我们理解Cron表达式的格式...

    Cron表达式生成器java版(需要jdk1.8)

    Quartz是一个强大的作业调度框架,它支持cron表达式,允许你创建Job类并定义触发时间,然后将Job与Trigger(触发器)关联,Trigger可以是一个cron表达式。Spring框架中的`@Scheduled`注解则提供了声明式的方法来定时...

    .net C# Cron表达式解析.

    Quartz.NET是一个功能丰富的作业调度框架,支持Cron表达式,而NCrontab则是一个轻量级的库,专为Cron表达式解析设计。 1. **Quartz.NET使用**: - 首先,你需要在项目中引入Quartz.NET库。 - 创建一个CronTrigger...

    C# Cron表达式解析 .net

    C# Cron表达式解析在.NET开发中是一种常见且重要的任务,尤其在自动化任务调度和计划程序的场景下。Cron表达式源于Unix操作系统,用于定义周期性任务的执行时间。在C#中,通过理解并解析Cron表达式,开发者可以创建...

    quartz cron表达式 Bootstrap实现

    在"quartz cron表达式 Bootstrap实现"中,我们主要讨论的是如何将Quartz的定时功能与Bootstrap的UI设计结合起来,创建一个用户友好的任务调度界面。首先,你需要理解Quartz的Cron表达式。Cron表达式由七个子表达式...

    cron表达式生成工具.rar

    在Java中,可以使用`org.quartz.CronExpression`类来解析cron表达式,验证其是否有效,并获取下一个触发时间等信息。这个工具可能内置了这样的功能,便于用户测试和调试cron表达式。 总的来说,"cron表达式生成工具...

    Quartz Cron表达式

    ### Quartz Cron表达式详解 #### 一、CronTrigger与SimpleTrigger对比 在Quartz调度器中,`CronTrigger`是一种非常强大的触发机制,它能够根据复杂的...理解和掌握Cron表达式的语法对于高效利用Quartz调度器至关重要。

    quartz的cron表达式

    cron表达式是一种用于配置定时任务执行规则的语言,广泛应用于Quartz等调度框架中。通过cron表达式,我们可以非常灵活地定义任务的执行时间,包括精确到秒的具体时刻、每天的固定时间段甚至是每月的特定日期等。 ##...

    quartz cron表达式实例及源码

    在Quartz中,Cron表达式是一种强大的工具,用于定义作业的触发时间。本文将深入探讨Quartz Cron表达式的实例及其源码解析。 一、Cron表达式基础 Cron表达式是由7个子表达式组成的字符串,每个子表达式代表一个时间...

    quartz表达式生成器,定时任务表达式

    在Quartz中,任务的调度通常通过一个叫做Cron Trigger的机制,它使用了一种特殊的表达式——Cron表达式,来定义任务的执行计划。 Cron表达式是由7个子表达式组成的字符串,每个子表达式都描述了一个单独的时间元素...

    Quartz的cron表达式帮助

    理解并熟练使用cron表达式是Quartz调度任务的关键,它可以帮助你精确控制任务的执行时间。正确地编写和配置cron表达式,能够确保你的定时任务按照预期准确执行。在开发过程中,可以利用Quartz提供的工具或在线cron...

    Quartz的Cron表达式

    在Quartz调度器中,CronTrigger类型的触发器支持Cron表达式来定义触发规则。Cron表达式由六个或七个有空格分隔的时间元素组成,每个元素对应不同的时间单位。 #### 二、Cron表达式结构 Cron表达式的结构如下: 1. *...

    cron表达式生成器(CronExpressionGenerator)

    cron表达式是Unix系统中的定时任务调度器crontab所使用的语法,也被广泛应用于各种任务调度框架,如Java的Quartz库。在Java开发中,正确编写cron表达式可能相当复杂,因为它们的格式严格且不直观。...

    winform版Cron源代码

    【标签】"QuartZ Cron C#"清楚地指出这个项目的核心技术栈:Quartz.NET(一个C#实现的作业调度框架),Cron表达式(时间调度规则),以及C#编程语言。这些标签揭示了源代码的主要技术元素和编程语言,对于理解代码...

    Quartz中的cron-like表达式解析 cron-like unix-like c#

    一个标准的Quartz cron表达式包含七个字段:秒、分钟、小时、日、月份中的日期、月份和星期。每个字段都可以用具体的数值、星号(*)(代表任何值)、范围(-)、列表(,)或者步长(/)来表示。例如,"0 0 12 * * ? *" 表示...

    Quartz定时任务表达式

    Quartz是一个开源的作业调度框架,能够触发在指定时间运行的任务,广泛应用于Java应用程序中进行定时任务的管理。Quartz的核心是Cron表达式,它允许开发者以一种灵活且可读性高的方式定义任务的执行时间。 #### ...

    easyui前台页面可选择生成quartz corn表达式

    同时,需要配置一个Trigger,它将根据CRON表达式来触发Job的执行。当Servlet接收到新的CRON表达式时,它会修改现有的Trigger或者创建一个新的Trigger,确保任务按照用户指定的时间执行。 在"easyui-auto-quartz-...

Global site tag (gtag.js) - Google Analytics