Cron表达式

Cron表达式

字段释义

0 0/5 * * * ?

秒 分 时 天(月) 月 天(周) 年份(一般省略)

符号释义

*:表示所有可能的值

/:表示数值的增量,简单来说,比如分写上0/5表示从0分开始,每隔5分钟

?:仅用在天(月)和天(周),表示不指定值,当其中一个有值时,另外一个需要设为?

字段允许字符

秒:0-59 , - * /

  • 26:表示第26秒
  • 5,16,27:表示第5秒、第16秒和第27秒
  • 1-5:表示从1秒到5秒,就是1 2 3 4 5 秒
  • *:表示每一秒
  • 2/15:表示从第2秒开始,每隔15秒,就是2 17 32 47 秒

分:0-59 , - * /

根据上述的秒,同理可得

  • 26:表示第26分钟
  • 5,16,27:表示第5分钟、第16分钟和第27分钟
  • 1-5:表示从1秒到5分,就是第1 2 3 4 5 分钟
  • *:表示每一分钟
  • 2/15:表示从第2分钟开始,每隔15分钟,就是2 17 32 47 分钟

时:0-23 , - * /

  • 10:表示早上10点
  • 22:表示晚上10点
  • 2,8,18,23:表示凌晨2点,早上8点,傍晚6点和晚上11点
  • 9-17:表示朝九晚五,就是9 10 11 12 13 14 15 16 17 点
  • *:表示每小时
  • 10/2:表示从早上10点开始,每隔2小时

天(月):1-31 , - * / ? L W C

  • 31:表示31号(注意有的月份是没有31号的)
  • 5,10,15:表示5号、10号和15号
  • 8-17:表示8号到17号
  • *:表示所有可能的值(当指定为星号时,天(周)需指定为?)
  • 5/9:表示从5号开始,每隔9天
  • ?:当天(周)指定任意值的时候,天(月)需要设置为?
  • L:表示一个月中的最后一天
  • 6L:表示倒数第6天
  • 15W:W指工作日,如果15号不是周六日,则表示15号当天;如果15号是周六,则表示14号;如果15号是周日,则表示16号;如果31W是周日,则31W表示29号(周五),不会跨月
  • LW:指最后一个工作日
  • 15C:表示第15天(不是很明白这个,使用15和15C貌似效果相同?)

月:1-12 , - * /

  • 10:表示10月份
  • 5,10,11:表示5月份、10月份和11月份
  • 4-8:表示4月份到8月份
  • *:表示所有可能的值
  • 5/2:表示从5月份开始,每隔2个月,(就是5 7 9 11 次年5 次年7 次年9......)
  • 1-12:也可以用JAN-DEC表示

天(周):MON-SAT , - * / ? L C #

  • MON:表示周一

  • MON,TUE,FRI:表示周一,周二和周五

  • MON-FRI:表示从周一到周五

  • MON-WED,SAT:表示从周一到周三,和周六(就是周一、周二、周三和周六)

  • mon,tue,wed,thu,fri,sat,sun:表示周一到周日(大小写均可,取星期英文前三个字母,注意星期四是thu,而不是thur)

  • 7L:表示最后一个周六(效果等同于SATL)(L表示last最后的意思,7表示周六,6表示周五,类推,1表示周日)

  • 6C:表示周五以及之后包含周五的日期(感觉效果FRI一样,具体还没深究)

  • 7#2:表示第二个周六(#前面的数字表示星期,1表示周日,2表示周一,以此类推;#后面的数字表示第几个)

年:留空 2020-2099 , - * /

  • 2050:表示2050年
  • 2020,2030,2040:表示2020年、2030年和2040年
  • 2020-2030:表示2020年到2030年
  • *:表示所有可能的值
  • 2020/10:表示从2020年开始,每隔10年,(就是2020,2030,2040......)

栗子

  • 每隔5分钟执行一次(从0分开始)

    0 0/5 * * * ?
    
  • 从0时开始,每小时执行一次

    0 0 0/1 * * ?
    
  • 每天的7点30分

    0 30 7 * * ?
    
  • 工作日的早上6点30分(即是周一到周五,每天早上的6点30分)

    0 30 7 ? * MON-FRI
    
  • 每个月的最后一天早上的10点整

    0 0 10 L * ?
    
  • 每个月的最后一个工作日的晚上6点30分(18:30)

    0 30 18 LW * ?
    
  • 朝九晚五,每小时

    0 0 9-17 * * ? 
    
  • 2020年的8月份每个星期六和星期日早上10点28分28秒

    28 28 10 ? 8 1,7 2020
    

    1,7中,1表示周日,7表示周六

  • 每个月的倒数第二天的早上8点整

    0 0 8 L-1 * ? 
    

    L表示最后一天(倒数第一天),L-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触发 
    

要点

  • 一般是有6个位置,分别表示 分 秒 时 天(月) 月 天(周) 第7个位置是年,一般省略
  • 6个位置中的 天(月) 表示一个月中的第几天,即是几月几号中的几号;天(周) 表示一周中的第几天,周日为第一天,周六为第七天
  • 天(月)天(周)不能同时指定,其中必定有一个是 ?
  • ? 只能用在 天(月)天(周)
  • 2-10:符号 - 表示范围区间
  • 2/10:符号 / 表示频率,从2开始,每隔10,即2,12,22......类推
  • 2,10:符号 , 表示和,2,10表示2和10
  • L:last的缩写,表示最后,只能用在天(月)天(周),一般和数字搭配使用,如L在天(月)中表示一个月中的最后一天,L-1则表示每个月的倒数第二天;3L在天(周)中则表示最后一个星期二

小结

  • 之前也接触过cron,不过上网上找到想要的效果之后便没有继续深究,现在想改个需求又得重蹈覆辙,所以便记录一下,参考过许多博客,理解之后才写下此文,或许有疏漏之处,欢迎指正!
  • 理解之后,就很容易写的出来,还是要靠理解
  • 附上一个在线Cron表达式生成器,网上找的: http://qqe2.com/dev/cron

题外知识

月份的英语单词:

一月:January;

二月:February;

三月:March;

四月:April;        

五月:May;  

六月:June;

七月:July; 

八月:August;        

九月:September; 

十月:October;

十一月:November; 

十二月:December

星期拼写

星期一:Monday,读音['mʌndi, 'mʌndei],英文缩写Mon。

星期二:Tuesday,读音['tju:zdi],英文缩写Tue。

星期三:Wednesday,读音['wenzdei, 'wenzdi],英文缩写Wed。

星期四:Thursday,读音['θə:zdi],英文缩写Thur。

星期五:Friday,读音['fraidi],英文缩写Fri。

星期六:Saturday,读音['sætədi],英文缩写Sat。

星期日:Sunday,读音['sʌndi],英文缩写Sun。

星期一到星期日的英文由来

星期一到星期日的英文由来

星期一:月亮日。西方人把这天献给月之女神,因为他们相信月的满亏会影响农作物的生长。

星期二:战神日。传说欧洲战神Tyr掌管法律和秩序,有次为了制服狼精被咬断了一只手,于是以他的名字命名了星期二。

星期三:风神日。西方人为了纪念风暴之神”Woden”,因为他曾领导神族跟巨人族作战,还牺牲自己锐利的左眼。

星期四:雷神日。这是为了纪念雷神”Thor”,他经常带着一把大铁锤,关于雷神Thor的铁锤还发生过有趣的故事,感兴趣的人可以了解一下。

星期五:古英文中Friday意思是Frigg’s day,Frigg是北欧神话中主司婚姻和生育的女神。

星期六:源于罗马的萨图恩神,它是掌管五谷的农神。

星期日:太阳日。因为耶稣复活的日子是星期日,所以现在大多数国家都以星期日为假日。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容