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

Quartz的cron表达式

    博客分类:
  • java
阅读更多
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。

按顺序依次为

秒(0~59)

分钟(0~59)

小时(0~23)

天(月)(0~31,但是你需要考虑你月的天数)

月(0~11)

天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,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 ? * WED 表示每个星期三中午12点
"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触发 

有些子表达式能包含一些范围或列表

例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT”

“*”字符代表所有可能的值

因此,“*”在子表达式()里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天

 

“/”字符用来指定数值的增量

例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟

         在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样


“?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值

当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”

 

“L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写

但是它在两个子表达式里的含义是不同的。

在天(月)子表达式中,“L”表示一个月的最后一天

在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT

如果在“L”前有具体的内容,它就具有其他的含义了

例如:“6L”表示这个月的倒数第6天,“FRIL”表示这个月的最一个星期五

注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题

 

字段   允许值   允许的特殊字符
  0-59   , - * /
  0-59   , - * /
小时   0-23   , - * /
日期   1-31   , - * ? / L W C
月份   1-12 或者 JAN-DEC   , - * /
星期   1-7 或者 SUN-SAT   , - * ? / L C #
年(可选)   留空, 1970-2099   , - * /

分享到:
评论
6 楼 zwb5370 2019-07-16  
为什么 Java 的 cron 规则的 周规则和 linux cron 的周规则不一样?
Java:天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
Linux: 天(星期)(0~7 0/7=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
5 楼 zjhdreams 2014-11-14  
没说说明L W C,L C #,每个字符的含义呢?补充
4 楼 qq359907964 2012-05-31  
呵呵,没问题了,能正常运行..
3 楼 biaoming 2008-12-29  
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发


有点复杂,你可以参考上面几条, 实在不行,你可以分两个时间段完成,
第一段为 59 59 23 20/1 12 * 2008
第二段为 59 59 23 1-10 1 * 2009
没经测试, 你可以参考一下.
2 楼 zhjb_javaeye 2008-12-29  
如果当前时间大于结束时间,则不执行任务;还有如果任务到期后怎么可以自动停止该任务???///////
1 楼 zhjb_javaeye 2008-12-29  
楼主我想问下给出开始和结束时间的时间段,在时间段内的每天晚上11时59分59秒执行任务,我应该怎么写呢??

如:开始时间为2008-12-20,结束时间为2009-01-10,在开始时间和结束时间的时间段内每天晚上11时59分59秒执行,那应该怎么写????

相关推荐

    Quartz Cron表达式生成器(.NET) 附上源码

    在.NET环境中,Quartz.NET提供了强大的功能,其中包括使用Cron表达式来定义任务的执行时间。Cron表达式是一种字符串格式,用于定义计划任务的执行周期,它的语法相对复杂,对于不熟悉的人来说可能会感到困扰。 ...

    超好用quartz cron表达式html,可直接嵌入项目工程

    Cron表达式是Quartz中的一种时间表达方式,它源自Unix的cron系统,用来定义定时任务的执行周期。本资源提供了一个超好用的Quartz Cron表达式HTML工具,可以帮助开发者更加便捷地创建和理解Cron表达式。 Cron表达式...

    对Quartz Cron 表达式的可视化双向解析和生成

    cmd中运行 ”javar -jar 文件名 “ ,生成可视化窗口,方便 生成和解析Cron;从此怕忘记,再也不求人。

    quartz cron表达式 Bootstrap实现

    Cron表达式是Quartz中用于配置定时任务的一种强大工具,源自Unix的cron系统,可以按照特定的时间间隔或者时间模式执行任务。在这个项目中,我们将讨论如何结合jQuery和Bootstrap来实现一个用户友好的界面,以便于...

    Quartz Cron 表达式生成,Cron在线编辑器

    Quartz Cron表达式是Java定时任务库Quartz的重要组成部分,用于定义定时任务的执行规则。Cron表达式是一种字符串格式,由七个子表达式组成,分别代表秒、分、小时、日、月、周和年,允许指定一个精确的时间调度。...

    Quartz Cron表达式

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

    quartz cron表达式实例及源码

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

    Quartz Cron表达式生成器

    Quartz Cron表达式生成器是一个基于JavaScript的工具,主要用于帮助前端开发者轻松地创建和理解复杂的Cron表达式。Cron表达式是Unix时间调度的一种格式,广泛应用于各种任务调度系统,包括Java的Quartz框架。它允许...

    quartz的cron表达式生成工具

    Cron表达式是Quartz中一个重要的概念,用于定义这些定时任务的执行计划。Cron表达式源自Unix系统的crontab命令,用于配置定时任务,而在Quartz中,它被用来更加灵活地设定作业的触发时间。 标题提到的"quartz的cron...

    Quartz_cron表达式

    Quartz支持多种触发器类型,其中最为灵活且功能强大的是CronTrigger,它允许用户通过Cron表达式来精确地定义作业的执行时间。 #### 二、Cron表达式格式与构成 Cron表达式是由6个(有时7个)由空格分隔的时间字段...

    初学之家(G2roon)Quartz Cron表达式生成器

    初学之家(http://www.g2room.com)Cron表达式在线生成器,可方便快捷的生成quartz的cron表达式,及对cron表达式进行解析,提供把Quartz的cron表达式解析执行,展示前10次执行时间。

    Quartz Cron表达式生成器(汉化版)

    Quartz定时器在使用时,需要Cron表达式,但是人为去写需要对表达式的规则足够了解,但有了该表达式生成器只需要选择对应的“执行”时间就可以快速生成符合你要求的表达式啦。

    quartz定时任务cron表达式

    在Quartz中,cron表达式是用于设置任务执行时间的一种强大工具,它源自Unix的cron系统,允许我们以一种简洁的方式来指定任务的执行周期。 cron表达式由七个子表达式组成,每个子表达式代表一个时间维度:秒、分钟、...

    .NET-Quartz-Cron-Parser:Quartz Cron 表达式转换为中文自然语言的查询工具, 使用C#作为语言开发

    .NET-Quartz-Cron-Parser 是一个专门为 .NET 平台设计的工具,它能够将 Quartz Cron 表达式转化为中文自然语言,使得对于复杂的定时任务调度更容易理解和管理。Quartz 是一个开源的作业调度框架,广泛应用于Java和...

    Cron表达式解析 翻译为中英文.zip

    Cron表达式是Unix/Linux系统中的定时任务调度器Cron所使用的语法,也被广泛应用于Java世界,例如Quartz、Spring等框架。它允许用户以字符串的形式定义任务的执行时间,如分钟、小时、日期等。这个压缩包文件包含了对...

    Java 写的Cron表达式解析

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

    WinForm Cron表达式生成器

    Quartz.Net Cron表达式生成器winform版  最近使用Quartz.net做了几个同步任务,感觉非常好。表达式设置也是非常灵活,但是新入手发现对表达式不熟,每次都要使用在线生成器。  于是写了一个winform版本的生成器...

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

    cron表达式是Unix/Linux系统中用于定时任务调度的一种机制,而在Java中,通过Quartz、Spring框架等库,也可以使用cron表达式来实现定时任务。本项目提供的"Cron表达式生成器java版"是一个基于Java 1.8的工具,能够...

Global site tag (gtag.js) - Google Analytics