cron表达式通过特定的规则指定时间,用于定时任务,本文简单记录它的部分语法和实例,并不完全,能覆盖日常大部分需求。

1. 整体结构

cron表达式是一个字符串,分为6或7个域,每两个域之间用空格分隔,其语法格式为:

"秒域 分域 时域 日域 月域 周域 年域"

其中,年域可以省略,省略时表示每年。

2. 每个域的取值范围

域名 可取值 可取符号(仅列部分常用)
秒域 0~59的整数   *    -    ,    /
分域 0~59的整数   *    -    ,    /
时域 0~23的整数   *    -    ,    /
日域 1~31的整数   *    -    ,    /    ?    L
月域 1~12的整数或JAN~DEC   *    -    ,    /
周域 1~7的整数或SUN~SAT   *    -    ,    /    ?    L    # 
年域 1970~2099的整数   *    -    ,    /

3. 符号的意义

(1)* 表示可以匹配该域的所有值;

例如,"0 0 13 * * ?"表示每天的13点执行一次。

(2)?在cron表达式中必须出现且只能出现1次,用在日域或周域上,表示不确定值、不限制值;

它与*的区别是,并不能匹配到该域上的所有值,例如指定了3月份每个周五,那么3月份的周五可能只有4个值;

例如,"0 0 5 6 * ?"表示每个月6日5点钟执行而无论周几,"0 0 5 ? * 3"表示每个周三5点钟执行而无论是几号。

(3)- 表示匹配该域上的一个范围;

例如,"0 30 9-15 ? * *"表示每天的9:30-15:30每小时执行一次,"0 1-5 * ? * 1"表示每周日每个小时的1-5分钟每分钟执行一次。

(4), 表示枚举值;

例如,"0 0 8,16,23 ? * 1,7"表示每个周六日的8点、16点、23点各执行一次。

(5)/ 表示起始时间和间隔时间;

例如,"0 0 3/5 * * ?"表示每天3点开始执行,每隔5个小时执行一次,即3点、8点、13点、18点、23点各执行一次,

"*/5 * * * * ?"表示每隔5秒钟执行一次,"0 */1 * * * ?"表示每隔1分钟执行一次。

(6)# 只能用于周域上,#后面的数字表示第几周,如果不存在这个周的值,则不执行;

例如,"0 0 0 ? * 5#2"表示每个月第2个周四零点执行,"15 30 6 ? * 7#5"表示每个月第5个周六6:30:15执行,如果某个月不存在第5个周六,则不执行。

(7)L 只能用于日域或周域,用于日域时表示当月最后一天,用于周域如果前面不加数字表示周六,加数字表示最后一个周值;

例如,"0 0 23 L * ?"表示每月最后一天的23点执行,"0 0 23 ? * L"表示每周六的23点执行,"0 0 23 ? * 3L"表示每月最后一个周二的23点执行。

4. 一些常见的实例(省略双引号)

意义 表达式
 每隔5秒钟执行一次            */5  *  *  *  *  ?
 每隔1分钟执行一次            0  */1  *  *  *  ?
 每天1点执行一次     0  0  1  *  *  ?
 每天23点55分执行一次     0  55  23  *  *  ?
 每月最后一天23点执行一次     0  0  23  L  *  ?
 每周六8点执行一次     0  0  8  ?  *  L
 每月最后一个周五,每隔2小时执行一次     0  0  */2  ?  *  6L
 每月的第三个星期五上午10:15执行一次     0  15  10  ?  *  5#3
 在每天下午2点到下午2:05期间的每1分钟执行     0  0-5  14  *  *  ?
 表示周一到周五每天上午10:15执行     0  15  10  ?  *  2-6
 每个月的最后一个星期五上午10:15执行     0  15  10  ?  *  6L 
 每天上午10点,下午2点,4点执行一次     0  0  10,14,16  * * ?
 朝九晚五工作时间内每半小时执行一次     0  0/30  9-17  *  * ?
 每个星期三中午12点执行一次     0  0  12  ?  *  4
 每年三月的星期三的下午2:10和2:44各执行一次       0  10,44  14  ?  3  4 
 每月的第三个星期五上午10:15执行一次     0  15  10  ?  *  6#3
 每月一日凌晨2点30执行一次     0  30  2  1  *  ?
 每分钟的第10秒与第20秒都会执行     10,20  *  *  *  * ?
 每月的第2个星期的周5,凌晨执行     0  0  0  ?  *  6#2

---------------------
作者:西班牙乞丐
来源:CNBLOGS
原文:https://www.cnblogs.com/dubhlinn/p/10740838.html
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

[转]cron表达式的用法的更多相关文章

  1. cron表达式的用法 【比较全面靠谱】

    转: cron表达式的用法 cron表达式通过特定的规则指定时间,用于定时任务,本文简单记录它的部分语法和实例,并不完全,能覆盖日常大部分需求. 1. 整体结构 cron表达式是一个字符串,分为6或7 ...

  2. (备忘)cron表达式的用法

    一.结构 cron表达式用于配置cronTrigger的实例,实现任务调度的功能. Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格 ...

  3. cron表达式的用法

    cron表达式通过特定的规则指定时间,用于定时任务,本文简单记录它的部分语法和实例,并不完全,能覆盖日常大部分需求. 1. 整体结构 cron表达式是一个字符串,分为6或7个域,每两个域之间用空格分隔 ...

  4. Java EE学习——Quartz的Cron表达式

    经历过低谷后,还是要好好学习,越失落会越来越落后. 今天写一下Cron表达式的用法,虽然是之前自己写的,也过了挺长一段时间,这次就拿出来作为回顾吧. Cron表达式是Quartz的精髓(个人觉得),比 ...

  5. Go cron定时任务的用法

    cron是什么 cron的意思就是:计划任务,说白了就是定时任务.我和系统约个时间,你在几点几分几秒或者每隔几分钟跑一个任务(job),就那么简单. cron表达式 cron表达式是一个好东西,这个东 ...

  6. Quartz.net的cron表达式

    写在前面 前面有一篇文章用到了quartz.net,在设置定时时间的时候,使用了cron表达式,这里记录几种常见设置方式,方便对照使用. 详情 在这篇文章:Quartz.Net在windows服务中的 ...

  7. (2)Spring集成Quartz定时任务框架介绍和Cron表达式详解

    在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...

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

    原文地址:http://www.cnblogs.com/obullxl/archive/2011/07/10/spring-quartz-cron-integration.html 在JavaEE系统 ...

  9. quartz定时任务cron表达式

    cron 表达式格式:秒 分 时 日 月 周 年(可选) 子表达式范围 字段名 字段解释 值范围 特殊字符 Seconds 秒 0~59 , - * / Minutes 分 0~59 , - * / ...

随机推荐

  1. 数组的方法之(Array.prototype.filter() 方法)

    filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素.     注意: filter() 不会对空数组进行检测.     注意: filter() 不会改变原始 ...

  2. selenium 常见问题之 nknown error: call function result missing ‘value’

    运行时候出现错误提示如下: 出现该问题原因:chrome浏览器自动升级.导致和chromedriver支持的版本不匹配. 解决方案有两种(本人采用的是第一种方式解决办法.): 1.下载和当前使用的ch ...

  3. HTML 实体字符

    有些字符,像(<)这类的,对HTML来说是有特殊意义的,所以这些字符是不允许在文本中使用的.要在HTML中显示(<)这个字符,我们就必须使用实体字符. 实体字符 有一些字符对HTML来讲是 ...

  4. C++之正则表示,字符串是否为全字母或者全数字

    bool isLetter(std::string& inputtext){ tr1::regex reg("^[A-Za-z]+$"); bool bValid = tr ...

  5. BMDP为常规的统计分析提供了大量的完备的函数系统,如:方差分析(ANOVA)、回归分析(Regression)、非参数分析(Nonparametric Analysis)、时间序列(Times Series)等等。此外,BMDP特别擅于进行出色的生存分析(Survival Analysis )。许多年来,一大批世界范围内顶级的统计学家都曾今参与过BMDP的开发工作。这不仅使得BMDP的权威性得到

        BMDP是Bio Medical Data Processing的缩写,是世界级的统计工具软件,至今已经有40多年的历史.目前在国际上与SAS.SPSS被并称为三大统计软件包.BMDP是一个大 ...

  6. 值得研究的J2EE开源项目推荐

    导读:笔者在学习J2EE的过程中发现了一些很有用,而且很值得学习的开源项目,在此推荐给大家. 关键词:J2EE 开源项目 J2SE JBoss SOA EJB   这篇文章写在我研究J2SE.J2EE ...

  7. objectarx之画多段线和画直线

    void CCommonFuntion::DrowPloyLine(AcGePoint2dArray& inputpoints){ if (inputpoints.length() < ...

  8. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图 代码工程地址: https://github.com/j ...

  9. APP上线前,如何做运营推广工作?

    http://www.cocoachina.com/market/20150723/12731.html 一 竞品分析 1.选择竞品,做好定位(选择两个产品最好,最多三个). 如何获取竞品? A 百度 ...

  10. toString和valueOf使得对象访问时显示一个特定格式的字符串,但是可以进行数字运算

    作用 toString()的作用是返回一个反映这个对象的字符串; valueOf()的作用是返回它相应的原始值; 异同点 共同点:在 JavaScript 中,toString()方法和valueOf ...