Java@Scheduled注解执⾏定时任务
之前⼀直是⽤的Timer实现定时任务
今天知道了有这样⼀种简单的注解⽅式执⾏定时任务:
使⽤⽅法
在spring的xml的配置中开启task
然后启⽤task,并扫描⽬录包下的类装配成bean
@Controller@Service@Component@Repository都是声明bean的⽅式
设置定时任务:
cron的规则如下:
econds(秒):可以⽤数字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,NOVandDEC”表⽰
Day-of-Week(每周):可以⽤数字1-7表⽰(1=星期⽇)或⽤字符⼝串“SUN,MON,TUE,WED,THU,FRIandSAT”表⽰
“/”:为特别单位,表⽰为“每”如“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”则表⽰“每⽉
第三个星期五”
这样的注解可以很⽅便的得到如母亲节之类的⽇期
“?”和“*”的区别有⼈可能不懂
⽐⽅我上⾯的规则
0/5****?
意思是0秒开始5秒执⾏⼀次但是⽇期和星期是会冲突的
表⽰不确定也就是说⽇期和星期⼏⼀个为*另⼀个只能为
注意事项
1.定时任务没有返回值
2.@Scheduled⽅法上的的注解
3.类需要被spring装配成bean
4.若需要和别的类进⾏交互,⼀般通过依赖注⼊进⾏
本文发布于:2022-11-26 05:29:17,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/23143.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |