CronExpression表达式语法简介

Quartz中的CronExpression指定任务执行的时间。

1.Cron表达式格式

一个Cron表达式由6或7个时间元素组成,他们之间用空格分隔。

依次为:[秒] [分] [小时] [日] [月] [星期] [年]

序号 说明 是否必填 允许填写的值 允许的符号
1 0-59 , - * /
2 0-59 , - * /
3 小时 0-23 , - * /
4 1-31 , - * ? / L W
5 1-12 or JAN-DEC , - * /
6 星期 1-7 or SUN-SAT , - * ? / L #
7 1970-2099 , - * /

2.Cron表达式各占位符表示

“-”表示可选值范围,如在“小时”上设置“10-12”,表示10点、11点和12点触发。 
“,”表示可选的多个值,例如在“星期”上设置“MON,WED,FRI”,表示周一,周三和周五触发。 
“/”用于递增触发,如在“秒”上面设置“5/15”表示从第5秒开始,每15秒触发一次(5,20,35,50);在“日”上设置“1/3”表示每月1号开始,每三天触发一次。

*表示所有值. 如在“分”上设置“*”,表示每分钟触发。 

“?”字符仅出现在“日”和“星期”两个元素上,表示不指定值。当这两个元素之一被指定了值以后,为了避免冲突,需要将另一个元素的值设为“?”。

“月”和“星期”元素上若使用英文字母是不区分大小写的,即MON与mon相同。

“L” 字符仅出现在“日”和“星期”两个元素上,它是单词“last”的缩写。“L”在“日”元素上出现,表示每个月的最后一天;在“星期”元素上出现,表示每个月最后一个星期六。如果在“L”前有具体的内容,它就具有其他的含义了。例如:“6L”在“日”上出现,表示每月的倒数第6天;“5L”在“星3.期”上出现,表示每月的最后一个星期四。

W表示离指定日期的最近那个工作日(周一至周五),例如在日字段上设置“15W”,表示离每月15号最近的那个工作日触发。如果15号正好是周六,则找最近的周五(14号)触发;如果15号是周未,则找最近的下周一(16号)触发;如果15号正好在工作日(周一至周五),则就在该天触发。如果指定格式为“1W”,它则表示每月1号往后最近的工作日触发。如果1号正是周六,则将在3号下周一触发。(注,“W”前只能设置具体的数字,不允许区间“-”).

3.Cron表达式的经典案例

Cron表达式的强大之处在于使用简单灵活的语法,几乎可以写出任何你想要触发的时间点。

0 0 12 * * ? 每天12点触发

0 15 10 ? * * 每天10点15分触发

0 15 10 * * ? 每天10点15分触发

0 15 10 * * ? * 每天10点15分触发

0 15 10 * * ? 2005 2005年每天10点15分触发

0 * 14 * * ? 每天14点到14点59分之间,每分钟触发一次

0 0/5 14 * * ? 每天14点到14点59分之间,每5分钟触发一次(从14点开始触发)

0 0/5 14,18 * * ? 每天14点到14点59分及18点到18点59分,每5分钟触发一次(分别从14点、18点开始触发)

0 0-5 14 * * ? 每天14点到14点05分之间,每分钟触发

0 10,44 14 ? 3 WED 3月份每周三14点10分和14点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分触发

0 0 12 1/5 * ? 每月1号的12点开始触发,每隔5天触发一次


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值