当前位置:   article > 正文

Springboot添加定时器

Springboot添加定时器

1.在启动类配置注解  @EnableScheduling

 

2.建ScheduleConfig

  1. import org.springframework.context.annotation.Bean;
  2. import org.springframework.scheduling.TaskScheduler;
  3. import org.springframework.scheduling.annotation.SchedulingConfigurer;
  4. import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
  5. import org.springframework.scheduling.config.ScheduledTaskRegistrar;
  6. public class ScheduleConfig implements SchedulingConfigurer{
  7. @Override
  8. public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
  9. TaskScheduler taskScheduler = taskScheduler();
  10. taskRegistrar.setTaskScheduler(taskScheduler);
  11. }
  12. @Bean(destroyMethod = "shutdown")
  13. public ThreadPoolTaskScheduler taskScheduler() {
  14. ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
  15. scheduler.setPoolSize(20);
  16. scheduler.setThreadNamePrefix("task-");
  17. scheduler.setAwaitTerminationSeconds(60);
  18. scheduler.setWaitForTasksToCompleteOnShutdown(true);
  19. return scheduler;
  20. }
  21. }

3.具体逻辑

  1. /**
  2. * 定时任务
  3. *
  4. * @author yanyf
  5. * 2019/9/20
  6. */
  7. @Component
  8. public class TimerTask implements CommandLineRunner {
  9. private Logger logger = LogManager.getLogger(this.getClass());
  10. /**
  11. * 1.启动时执行
  12. */
  13. @Override
  14. public void run(String... args) throws Exception {
  15. logger.info("========定时任务已开启========");
  16. }
  17. /**
  18. * 2.之后按要求执行
  19. *
  20. * 一些cron表达式:
  21. * 0 0/15 * * * ?每隔15分钟 0 0/7 * * * ?
  22. * 0 0 0/1 * * ? 每隔1小时
  23. * 0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
  24. * 0 0 10 L * ? 每个月最后一天的10点0分0秒触发任务
  25. * 0 0 1 * * ? 每天凌晨1点
  26. *
  27. */
  28. /**
  29. * 例如 整点查询 是否有 需要发送的短信
  30. */
  31. @Scheduled(cron = "0 0 0/1 * * ?")
  32. public void sendMessage() {
  33. // 具体逻辑
  34. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/52499
推荐阅读
相关标签
  

闽ICP备14008679号