本篇文章给大家谈谈cron时间表达式,以及cron表达式每30秒执行一次对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
本文目录
一、quartz cron表达式 每周一0点怎么设置
cron的表达式被用来配置CronTrigger实例。cron的表达式是字符串,实际上是由七子表达式,描述个别细节的时间表。这些子表达式是分开的空白,代表:
例"0 0 12?* WED"在每星期三下午12:00执行,
个别子表达式可以包含范围,例如,在前面的例子里("WED")可以替换成"MON-FRI","MON, WED, FRI"甚至"MON-WED,SAT".
每一个字段都有一套可以指定有效值,如
Seconds(秒):可以用数字0-59表示
Minutes(分):可以用数字0-59表示
Day-of-Month(天):可以用数字1-31中的任一一个值,但要注意一些特别的月份
Month(月):可以用0-11或用字符串“JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC”表示
Day-of-Week(每周):可以用数字1-7表示(1=星期日)或用字符口串“SUN, MON, TUE, WED, THU, FRI and SAT”表示
“/”:为特别单位,表示为“每”如“0/15”表示每隔15分钟执行一次,“0”表示为从“0”分开始,“3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行
“?”:表示每月的某一天,或第周的某一天
“L”:用于每月,或每周,表示为每月的最后一天,或每个月的最后星期几如“6L”表示“每月的最后一个星期五”
“W”:表示为最近工作日,如“15W”放在每月(day-of-month)字段上表示为“到本月15日最近的工作日”
““#”:是用来指定“的”每月第n个工作日,例在每周(day-of-week)这个字段中内容为"6#3" or"FRI#3"则表示“每月第三个星期五”
二、Cron表达式
秒 分 时 天(月) 月 天(周) 年份(一般省略)
/:表示数值的增量,简单来说,比如分写上0/5表示从0分开始,每隔5分钟
?:仅用在天(月)和天(周),表示不指定值,当其中一个有值时,另外一个需要设为?
5,16,27:表示第5秒、第16秒和第27秒
1-5:表示从1秒到5秒,就是1 2 3 4 5秒
2/15:表示从第2秒开始,每隔15秒,就是2 17 32 47秒
5,16,27:表示第5分钟、第16分钟和第27分钟
1-5:表示从1分到5分,就是第1 2 3 4 5分钟
2/15:表示从第2分钟开始,每隔15分钟,就是2 17 32 47分钟
2,8,18,23:表示凌晨2点,早上8点,傍晚6点和晚上11点
9-17:表示朝九晚五,就是9 10 11 12 13 14 15 16 17点
10/2:表示从早上10点开始,每隔2小时
31:表示31号(注意有的月份是没有31号的)
*:表示所有可能的值(当指定为星号时,天(周)需指定为?)
?:当天(周)指定任意值的时候,天(月)需要设置为?
15W:W指工作日,如果15号不是周六日,则表示15号当天;如果15号是周六,则表示14号;如果15号是周日,则表示16号;如果31W是周日,则31W表示29号(周五),不会跨月
15C:表示第15天(不是很明白这个,使用15和15C貌似效果相同?)
5,10,11:表示5月份、10月份和11月份
5/2:表示从5月份开始,每隔2个月,(就是5 7 9 11次年5次年7次年9......)
MON,TUE,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,2030,2040:表示2020年、2030年和2040年
2020-2030:表示2020年到2030年
2020/10:表示从2020年开始,每隔10年,(就是2020,2030,2040......)
每隔5分钟执行一次(从0分开始)
工作日的早上6点30分(即是周一到周五,每天早上的6点30分)
每个月的最后一个工作日的晚上6点30分(18:30)
2020年的8月份每个星期六和星期日早上10点28分28秒
L表示最后一天(倒数之一天),L-1则表示倒数第二天,以此类推
下面是网上一些例子,我直接拿过来了
"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,12,22......类推
2,10:符号,表示和,2,10表示2和10
L:last的缩写,表示最后,只能用在天(月)和天(周),一般和数字搭配使用,如L在天(月)中表示一个月中的最后一天, L-1则表示每个月的倒数第二天;3L在天(周)中则表示最后一个星期二
三、...quartz 每30分钟执行一次cronExpression表达式怎么写
<cron-expression>0 0/30***?</cron-expression>
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
Spring-quartz CronExpression表达式:
4.天(月)(0~31,但是需要考虑你月的天数)
6.天(星期)(1~7 1=SUN或 SUN,MON,TUE,WED,THU,FRI,SAT)
注:其中每个元素可以是一个值(如6),一个连续区间(9-12)。
由于"月份中的日期"和"星期中的日期"这两个元素互斥的,故,必须要对其中一个设置。
有些子表达式能包含一些范围或列表:
例如:子表达式(天(星期))可以为“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
关于本次cron时间表达式和cron表达式每30秒执行一次的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。