
Cron表达式 gmsk联合解调
英语记叙文-民族分布特点
2023年3月3日发(作者:薏仁是什么)Cron表达式详解(job表达式)
Cron表达式的详细⽤法
字段允许值允许的特殊字符
秒0-59,-*/
分0-59,-*/
⼩时0-23,-*/
⽇期1-31,-*?/LWC
⽉份1-12或者JAN-DEC,-*/
星期1-7或者SUN-SAT,-*?/LC
#年(可选)留空,1970-2099,-*/
例⼦:
0/5****?:每5秒执⾏⼀次
“*”字符被⽤来指定所有的值。如:\"*\"在分钟的字段域⾥表⽰“每分钟”。
“?”字符只在⽇期域和星期域中使⽤。它被⽤来指定“⾮明确的值”。当你需要通过在这两个域中的⼀个来指定⼀些东西的时候,它是有⽤的。
看下⾯的例⼦你就会明⽩。
⽉份中的⽇期和星期中的⽇期这两个元素时互斥的⼀起应该通过设置⼀个问号来表明不想设置那个字段。
“-”字符被⽤来指定⼀个范围。如:“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天,也就是周⽇的后⼀天(周⼀)。
五、表达式举例
\"0012**?\"每天中午12点触发
\"01510?**\"每天上午10:15触发
\"01510**?\"每天上午10:15触发
\"01510**?*\"每天上午10:15触发
\"01510**?2005\"2005年的每天上午10:15触发
\"0*14**?\"在每天下午2点到下午2:59期间的每1分钟触发
\"00/514**?\"在每天下午2点到下午2:55期间的每5分钟触发
\"00/514,18**?\"在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
\"00-514**?\"在每天下午2点到下午2:05期间的每1分钟触发
\"010,4414?3WED\"每年三⽉的星期三的下午2:10和2:44触发
\"01510?*MON-FRI\"周⼀⾄周五的上午10:15触发
\"0151015*?\"每⽉15⽇上午10:15触发
\"01510L*?\"每⽉最后⼀⽇的上午10:15触发
\"01510?*6L\"每⽉的最后⼀个星期五上午10:15触发
\"01510?*6L2002-2005\"2002年⾄2005年的每⽉的最后⼀个星期五上午10:15触发
\"01510?*6#3\"每⽉的第三个星期五上午10:15触发