网上搜索一下cron表达式,会出来很多,但是大部分也就把几个星号放上去,配了几个示例,还需要一番研究。不但耽误时间,还容易理解错误。
其实把下面这2个问题理解一下,立马就懂了。
1、cron表达式到底几位
其实cron表达式一共有7位,最后1位是指定年份的,很多时候不需要指定,所以经常看到的都是6位的。
// 6位的 0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业 // 7位的 0 15 10 ? * 6L 2002-2005 表示2002年至2005年的每月的最后一个星期五上午10:15触发
每个位的意思是固定的(可能偶尔会看到对不上的,鄙视一下不按顺序写的),按顺序依次为
- 秒(0~59)
- 分钟(0~59)
- 小时(0~23)
- 天(月)(0~31,但是你需要考虑你月的天数)
- 月(0~11)
- 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
- 年份(1970-2099)
2、?啥意思
?表示不指定,而且只能用在4和6位。4和6位互斥,比如如果指定4位为*,则6为就要指定?,反之亦然。
0 15 10 ? * * 每天上午10:15触发 0 15 10 * * ? 每天上午10:15触发 0 15 10 * * ? * 每天上午10:15触发
至于 - ,/这些通俗易懂的,一看就知道啥意思了,不需要多解释了。