cron 定时任务

1-语法:

            *    *   *   *   *    *   *

语法:秒 分 时 日 月 周 年(srping不支持年写法)

网址

Cron Trigger Tutorial (quartz-scheduler.org)icon-default.png?t=N2N8http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.htmlcron 定时任务_第1张图片

 解析:

秒的位置值可以是 0到59,

分钟位置值可以是 0-59,

小时的位置可以是 0-23,

日可以是 1到31,

月可以是 1-12 或者  JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV ,DEC,

周可以是 1-7 或者 SUN, MON, TUE, WED, THU, FRI , SAT

年 spring 不支持写法,除了年以外 其他都是必填的。

cron 定时任务_第2张图片上图中最后一列表示每个位置可以用的 字符。

 

2-每个位置字符详解:

2-1 :用于枚举

例如 (cron="7,9,23 * * * * ?"):任意时刻的 7,9,23 秒启动任务

2-2::用于范围:

例如 (cron="7-20 * * * * ?") : 任意时刻的 7-20 秒之间,每秒启动

2-3: *:任意 表示所有;

指定位置的任意时刻都可以

2-4:/:步长;

例如 (cron="7/5 * * * * ?"):第 7 秒启动,每 5 秒一次;

例如 (cron="*/5 * * * * ?"):任意秒启动,每 5 秒一次

以上四个比较常用

2-5 :(出现在日和周几的位置) 表示未说明的值,即不关心它为何值

cron 定时任务_第3张图片

 

为了防止日和周冲突,在周和日上如果要写通配符使用?,

例如  每月一号 cron写法

错误 (cron="* * * 1 * SUN") 错误写法 因为每月一号不一定是周一,所以?解决 日和周的冲突写法

正确 (cron="* * * 1 * ?"):每月的 1号 启动这个任务

2-6 : L:(出现在日和周的位置)

L 表示 last:   最后一个 (cron="* * * ? * 3L"):每月的最后一个周二

2-7 : W: Work Day:工作日

(cron="* * * W * ?"):每个月的工作日触发 (cron="* * * LW * ?"):每个月的最后一个工作日触发

2-8  #:用法

#:第几个 (cron="* * * ? * 5#2"):每个月的第 2 个周

一些cron表达式案例
*/5 * * * * ? 每隔5秒执行一次
0 */1 * * * ? 每隔1分钟执行一次
0 0 5-15 * * ? 每天5-15点整点触发
0 0/3 * * * ? 每三分钟触发一次
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发 
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 

0 0 12 ? * WED 表示每个星期三中午12点
0 0 17 ? * TUES,THUR,SAT 每周二、四、六下午五点
0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发 
0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
0 0 23 L * ? 每月最后一天23点执行一次
0 15 10 L * ? 每月最后一日的上午10:15触发 
0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发 
0 15 10 * * ? 2005 2005年的每天上午10:15触发 
0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发 
0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发


"30 * * * * ?" 每半分钟触发任务
"30 10 * * * ?" 每小时的10分30秒触发任务
"30 10 1 * * ?" 每天1点10分30秒触发任务
"30 10 1 20 * ?" 每月20号1点10分30秒触发任务
"30 10 1 20 10 ? *" 每年10月20号1点10分30秒触发任务
"30 10 1 20 10 ? 2011" 2011年10月20号1点10分30秒触发任务
"30 10 1 ? 10 * 2011" 2011年10月每天1点10分30秒触发任务
"30 10 1 ? 10 SUN 2011" 2011年10月每周日1点10分30秒触发任务
"15,30,45 * * * * ?" 每15秒,30秒,45秒时触发任务
"15-45 * * * * ?" 15到45秒内,每秒都触发任务
"15/5 * * * * ?" 每分钟的每15秒开始触发,每隔5秒触发一次
"15-30/5 * * * * ?" 每分钟的15秒到30秒之间开始触发,每隔5秒触发一次
"0 0/3 * * * ?" 每小时的第0分0秒开始,每三分钟触发一次
"0 15 10 ? * MON-FRI" 星期一到星期五的10点15分0秒触发任务
"0 15 10 L * ?" 每个月最后一天的10点15分0秒触发任务
"0 15 10 LW * ?" 每个月最后一个工作日的10点15分0秒触发任务
"0 15 10 ? * 5L" 每个月最后一个星期四的10点15分0秒触发任务
"0 15 10 ? * 5#3" 每个月第三周的星期四的10点15分0秒触发任务

你可能感兴趣的:(spring)