SpringBoot-基础-08-计划任务
一、简介
Spring支持的计划任务,开发简单,执行效率比较高,但是同样在任务数量太多时会出现阻塞、崩溃、延迟等问题,适合处理一些简单的计划任务。
二、基本使用
(1)Springboot启动类:使用@EnableScheduling开启对计划任务的支持。
(2)指定执行的任务:在执行任务的方法上加上注释@Scheduled,声明这是个计划任务。
@Scheduled注解可通过参数配置任务执行规则
@Scheduled(cron=“/8”),通过cron表达式定义规则(引擎搜索cron表达式会自动生成)
@Scheduled(fixedRate = 50000),上一次任务开始执行时间点5秒再执行
@Scheduled(fixedDelay = 50000),上一次任务执行时间结束后5秒再执行
@Scheduled(inittialDelay = 1000,fixedRate = 50000),任务第一次执行时延迟一秒,之后的任务按照第二个参数的规则执行
示例:
指定任务
@Component
public class TaskService {
@Scheduled(fixedRate = 5000)
public void reportCurrenttime(){
System.out.println("每隔五秒执行当前任务1");
}
@Scheduled(cron = "*/10 * * * * *")
public void fixTimeExecution(){
System.out.println(""+"每隔十秒执行一次当前任务2");
}
}
开启任务支持,使用@ComponentScan指定扫描指定路径下的类,注入bean
@Configuration
@ComponentScan("com.example.demo.schedule")
@EnableScheduling
public class SchedulerConfig {
public static void main(String[] args){
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SchedulerConfig.class);
}
}
测试结果: