Spring定时任务@Scheduled注解使用

你的名字 2022-05-23 08:47 373阅读 0赞

xml的方式这里就不写了,使用也比较麻烦,这里放一篇教程

https://blog.csdn.net/qq\_33556185/article/details/51852537

下面是Spring Boot的整合@Scheduled的使用方式

首先先写一个Spring Task的配置类,配置线程池,防止因为一个定时任务执行时间过长导致其他定时任务出错

  1. import org.springframework.context.annotation.Configuration;
  2. import org.springframework.scheduling.annotation.SchedulingConfigurer;
  3. import org.springframework.scheduling.config.ScheduledTaskRegistrar;
  4. import java.util.concurrent.Executors;
  5. @Configuration
  6. public class SchedulerConfig implements SchedulingConfigurer {
  7. //开启线程池
  8. @Override
  9. public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
  10. taskRegistrar.setScheduler(Executors.newScheduledThreadPool(100));
  11. }
  12. }

然后写一个自己的定时任务

  1. import lombok.extern.slf4j.Slf4j;
  2. import org.springframework.scheduling.annotation.Scheduled;
  3. import org.springframework.stereotype.Component;
  4. import java.time.Instant;
  5. import java.util.Date;
  6. @Component
  7. @Slf4j
  8. public class MyScheduler {
  9. @Scheduled(fixedRate = 2000)
  10. public void firstTask(){
  11. log.info("第一个任务启动,时间:" + new Date());
  12. }
  13. @Scheduled(cron = "* * * * * ?")
  14. public void secondTask(){
  15. log.info("第二个定时任务启动,时间: " + Instant.now());
  16. }
  17. }

最后在Spring Boot启动类上加上@EnableScheduling注解开定时任务就可以了

发表评论

表情:
评论列表 (有 0 条评论,373人围观)

还没有评论,来说两句吧...

相关阅读