1.使用jdk 自带的timer和timerTask(实现了runable 接口的抽象类,自己写的timerTask需要继承它)
2.使用spring 自带的Task ,可以基于通过XML配置和基于注解的方式任选一种进行开发
3.spring 自带的Task 中提到Cron 注解,(秒 分 时 dayOfMonth month dayOfWeek year(可选)),注意这个中间是没有逗号的,他们使用空格隔开的,如果使用逗号隔开,表示该字段有多个值。
例如:
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
Cron表达式的格式:秒 分 时 日 月 周 年(可选)。
字段名 允许的值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日 1-31 , - * ? / L W C
月 1-12 or JAN-DEC , - * /
周几 1-7 or SUN-SAT , - * ? / L C #
年 (可选字段) empty, 1970-2099 , - * /
“?”字符:表示不确定的值(通常用在 day of week 字段上)
“,”字符:指定多个个值
“-”字符:指定一个值的范围
“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
“W”字符:指定离给定日期最近的工作日(周一到周五)
“#”字符:表示该月第几个周X。6#3表示该月第3个周五
网友评论