Spring--Quartz定时任务Cron表达式使用说明
目录
一、cron表达式格式
cron表达式格式为七个域,如:
秒 分 时 日 月 周 年("30 20 10 4 2 ? 2018"表示2018年2月4日10点20分30秒)
每一个域之间空格隔开,不指定“年”域时即省略不写,则默认当前年,如:
秒 分 时 日 月 周 年("30 20 10 4 2 ?"表示2018年2月4日10点20分30秒)
指定“日”域,“周”域为?,指定“周”域,“日”域为?,如:
秒 分 时 日 月 ?("30 20 10 ? 2 7#1 2018"表示2018年2月第1个周六10点20分30秒)
秒 分 时 ? 月 周("30 20 10 4 2 ? 2018"表示2018年2月4日10点20分30秒)
二、cron表达式七个域取值范围列表
需要注意的是“周”域中,使用数值表示时,7表示周六,1表示周日
三、符号使用说明
1、所有域均可用 , - * /
"x,y"表示x和y
"x-y"表示x到y
"* "表示每秒/分/小时/日/月/周/年
"x/y"表示从x起,每隔y
2、日域另有 ? L W C
? 表示不指定“日”域的值。规则是指定“周”域,则“日”域必须为“?”。反之,指定“日”域,则“周”域必须为“?”。如0 0 12 ? * MON 或 0 0 12 1 * ?
L 2种写法。一,表示月末几天,如2L, 表示月末的2天。二,表示月末倒数第几天,如L-3,表示月末倒数第3天。
W 表示临近某日的工作日,如15W,表示最接近15号的工作日,可能是15号(刚好是工作日)、15号前(刚好周六)或15号后(刚好周日)。
C 表示和Calendar计划关联的值,如1C表示,1日或1日后包括Carlendar的第一天。
LW L和W的组合,只能出现在"日"域中。表示某月最后一个工作日,不一定是周五(详细见结尾PS)。
3、“周”域另有 ? L # C
? 表示不指定“周”域。规则是指定“日”域值,则“周”域值必须为?。反之,指定“周”域值,则“日”域值必须为?。如0 0 12 1 * ? 或 0 0 12 ? * MON
L 表示某月的最后一个周几,如1L, 表示某月的最后一个周日(1表示周日),7L,表示某月的最后一个周六(7表示周六)。
# 只能出现在"周"域中,表示第几个周几,x#y,y表示第几个,x表示周的值,如6#2,表示第2个周五(6表示周五)。
C 表示和Calendar计划关联的值,如1C表示,周日或周日后包括Carlendar的第一天。
PS:
“日”域中,L和W组合为LW时,网上有很多种定义,比如:
说法一:LW表示某月的最后一个工作日
说法二:LW某月最后一周的最后一个工作日,即周五
准确的描述是:日域指定为LW时,表示某月的最后一个工作日,不一定是周五
cron表达式例子:例子就不给了,网上给的太多,看完我这篇文章你还要我帮你写例子?
附
cron表达式在线生成工具http://www.pppet.net/
Cron表达式生成器http://www.pdtools.net/tools/becron.jsp
文章来源: blog.csdn.net,作者:吾日三省贾斯汀,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/JustinQin/article/details/80689594
- 点赞
- 收藏
- 关注作者
评论(0)