springboot定时任务
- 1.什么是定时任务?[ul]1.在需要定时执行的方法上加上@Sceduled注解,参数是cron表达式
- 2.在主配置类中开启定时任务@EnableSchedulin
- 2.怎样使用定时任务?
[/ul]
1.什么是定时任务?
知道定时炸弹吧,定一个时间,就自动爆炸;
这里的定时任务类似,不过不是爆炸哈!
定时任务在项目开发中很实用,比如我们需要在每天凌晨的时候,分析前一天的的日志信息,每个月需要一天来收集上个月的数据形成报表等等…
In short,就是你可以指定一个方法,让它什么时候执行,它就什么时候执行,是不是很有趣呀?来看看怎么使用吧!!
2.怎样使用定时任务?
spring为我们提供了两个注解来支持设定定时任务;
@EnableScheduling :开启定时任务;
@Scheduled :给我们需要定时执行的方法上加上这个注解
这里先介绍一下cron表达式:就是用来设置时间的
cron表达式包含秒,分,时,日,月,周几(共6位)
举例:
0 * * ? * MON-FRI :指的是任意月周一到周五的任意分钟的每一分钟执行一次
1,2,3,4 * * ? MON-STA :任意月的周一到周六的任意分钟的1,2,3,4秒执行一次
0-4 * * ? * MON-SAT:任意月的任意天的周一到周六的任意分钟的0-4秒执行一次
0/4 * * ? MON-STA:任意月的任意天的周一到六的任意分钟的每4秒执行一次
注意:,
- 每个数间要以空格分开
- ? 是用来解决日期冲突的,比如我们在日位置用了*,在周几用了MON-STA,这里就矛盾了
- 因此要把日所在位置换成?,可以解决冲突
代码:
1.在需要定时执行的方法上加上@Sceduled注解,参数是cron表达式
@Servicepublic class TaskService { @Scheduled(cron = \"0 * * * * MON-STA\")public void hello(){System.out.println(\"hello....\");}}
2.在主配置类中开启定时任务@EnableSchedulin
@SpringBootApplication@EnableSchedulingpublic class SpringbootSecurityApplication {public static void main(String[] args) {SpringApplication.run(SpringbootSecurityApplication.class, args);}}