Spring定时任务@Scheduled注解使用
xml的方式这里就不写了,使用也比较麻烦,这里放一篇教程
https://blog.csdn.net/qq\_33556185/article/details/51852537
下面是Spring Boot的整合@Scheduled的使用方式
首先先写一个Spring Task的配置类,配置线程池,防止因为一个定时任务执行时间过长导致其他定时任务出错
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import java.util.concurrent.Executors;
@Configuration
public class SchedulerConfig implements SchedulingConfigurer {
//开启线程池
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(Executors.newScheduledThreadPool(100));
}
}
然后写一个自己的定时任务
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.Instant;
import java.util.Date;
@Component
@Slf4j
public class MyScheduler {
@Scheduled(fixedRate = 2000)
public void firstTask(){
log.info("第一个任务启动,时间:" + new Date());
}
@Scheduled(cron = "* * * * * ?")
public void secondTask(){
log.info("第二个定时任务启动,时间: " + Instant.now());
}
}
最后在Spring Boot启动类上加上@EnableScheduling注解开定时任务就可以了
还没有评论,来说两句吧...