cron表达式基础配置知识

一:Cron表达式

cron的表达式被用来配置CronTrigger实例。 cron的表达式是字符串,实际上是由七子表达式,描述个别细节的时间表。这些子表达式是分开的空白,代表:

Seconds

Minutes

Hours

Day-of-Month

Month

Day-of-Week

Year (可选字段)

例 “0 0 12 ? * WED” 在每星期三下午12:00 执行,

个别子表达式可以包含范围, 例如,在前面的例子里(“WED”)可以替换成 “MON-FRI”, “MON, WED, FRI"甚至"MON-WED,SAT”. “*” 代表整个时间段.
每一个字段都有一套可以指定有效值,如

Seconds (秒) :可以用数字0-59 表示,

Minutes(分) :可以用数字0-59 表示,

Hours(时) :可以用数字0-23表示,

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” 则表示“每月第三个星期五”

二:符号使用说明

1、所有域均可用“,”,“-”,“”,“/”
【1】, x,y表示x和y
【2】- x-y表示x到y
【3】
表示每TIME
【4】/ x/y表示从x起,每隔y

2、“日”域另有“?”,“L”,“W”,“C”
【1】? 表示不指定“日”域的值。规则是指定“周”域,则“日”域必须为“?”。反之,指定“日”域,则“周”域必须为“?”。如0 0 12 ? * MON 或 0 0 12 1 * ?
【2】L 2种写法。一,表示月末几天,如2L, 表示月末的2天。二,表示月末倒数第几天,如L-3,表示月末倒数第3天。
【3】W 表示临近某日的工作日,如15W,表示最接近15号的工作日,可能是15号(刚好是工作日)、15号前(刚好周六)或15号后(刚好周日)。
【4】C 表示和Calendar计划关联的值,如1C表示,1日或1日后包括Carlendar的第一天。
【5】LW L和W的组合,只能出现在"日"域中。表示某月最后一个工作日,不一定是周五(详细见结尾PS)。

3、“周”域另有“?”,“L”,“#”,“C”
【1】? 表示不指定“周”域。规则是指定“日”域值,则“周”域值必须为“?”。反之,指定“周”域值,则“日”域值必须为“?”。如0 0 12 1 * ? 或 0 0 12 ? * MON
【2】L 表示某月的最后一个周几,如1L, 表示某月的最后一个周日(1表示周日),7L,表示某月的最后一个周六(7表示周六)。
【3】# 只能出现在"周"域中,表示第几个周几,x#y,y表示第几个,x表示周的值,如6#2,表示第2个周五(6表示周五)。
【4】C 表示和Calendar计划关联的值,如1C表示,周日或周日后包括Carlendar的第一天。

三:附上cron表达式生成工具

1、cron表达式在线生成工具http://www.pppet.net/

四:常用表达式例子

(1)0 0 2 1 * ? * 表示在每月的1日的凌晨2点调整任务

(2)0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业

(3)0 15 10 ? 6L 2002-2006 表示2002-2006年的每个月的最后一个星期五上午10:15执行作

(4)0 0 10,14,16 * * ? 每天上午10点,下午2点,4点

(5)0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时

(6)0 0 12 ? * WED 表示每个星期三中午12点

(7)0 0 12 * * ? 每天中午12点触发

(8)0 15 10 ? * * 每天上午10:15触发

(9)0 15 10 * * ? 每天上午10:15触发

(10)0 15 10 * * ? * 每天上午10:15触发

(11)0 15 10 * * ? 2005 2005年的每天上午10:15触发

(12)0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发

(13)0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发

(14)0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

(15)0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发

(16)0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发

(17)0 15 10 ? * MON-FRI 周一至周五的上午10:15触发

(18)0 15 10 15 * ? 每月15日上午10:15触发

(19)0 15 10 L * ? 每月最后一日的上午10:15触发

(20)0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发

(21)0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发

(22)0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值