文章目录
先看个例子:0 0 12 ? * WED *
意思是 “ 每个星期三的中午12点 ”。
一、组成部分介绍(5+2)
1、前5位域
从第5位倒数,巧记:月-日-时分秒,大多数情况只用这5位就够了
2、后两位域
从第6位至第7位是星期、年,年可不填,即可以少一位。
一般很少用,后面两位固定“?*”或省略年变为“?”
二、域常用字符分类及解释
1、通用域类型的字符
1)“单值”
该位数字固定,不间隔,如Minutes域的“1”,表示某时1分时执行一次就行
2)"*"
表示无条件、不限制,被修饰的该位置上的单位,比如分,那就是每一分钟都执行,无条件限制;
3)"/"
需要指定始值和间隔n,
”如Minutes域的“0/15”表示从“0”分开始, 每隔15分钟执行一次;
“3/20”表示从第3分钟开始执行,每隔20分钟执行一次,有点像Mysql的,offset,limit。等差执行,间隔n。
4) “-"
表示范围,如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次,有点像Mysql的in。间隔1。
2、限定域类型的字符
1)"? "
只能用在自然日和星期几两个域,表示不指定值。即自然日和星期几,只能二选一,肯定有一个是?来表示它放弃
2)“L”
只能用在自然日和星期几两个域,表示最后一天
3)“W”
只能用在自然日,表示为最近工作日,如“15W”放在每月(day-of-month)字段上表示为“到本月15日最近的工作日”
4) “# "
只能用在星期几。是用来指定“的”每月第n个工作日,例 在每周(day-of-week)这个字段中内容为”6#3” or “FRI#3” 则表示“每月第三个星期五”
三、常用示例
(1)0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业
(2) 0 0 2 1 * ? * 表示在每月的1日的凌晨2点调整任务
(3) 0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发
(4) 0 0 12 * * ? 每天中午12点触发
(5) 0 15 10 * * ? * 每天上午10:15触发
(5) 0 0/30 9-17 * * ? 9点-17点每半小时
(6) 0 0 12 ? * WED 表示每个星期三中午12点
(7) 0 0 10,14,16 * * ? 表示每天上午10点,下午2点,4点
(8) 0 0/30 9-17 * * ? 9点-17点每半小时
(9) 0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
(10) 0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
(11) 0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
(12) 0 15 10 15 * ? 每月15日上午10:15触发
(13) 0 15 10 L * ? 每月最后一日的上午10:15触发 (L表示最后一天)
(14) 0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发 (6是星期五 从礼拜天开始算)
(15) 0 15 10 ? 6L 2002-2006 表示2002-2006年的每个月的最后一个星期五上午10:15执行