admin管理员组

文章数量:1533913

Schedule未能成功启动定时任务解决方案

  1. 查看是否开启schedule注解

    启动类

    @SpringBootApplication
    @EnableScheduling
    @EnableAsync
    public class Application {
       private static final Logger logger = LoggerFactory.getLogger(Application.class);
    

    定时任务类

    /**
     * 设备服务器监控
     * 容器启动后直接执行该定时任务,然后延迟10秒再执行,以后每隔50秒执行一次
     */
    @Scheduled(initialDelay = 10000, fixedRate = 50000)
    @Async
    public void monitorDevice() {
        logger.info("定时任务");
    
  2. 是否开启async异步定时任务

  3. 增大线程池数量(可能由于之前定时任务未执行完成导致线程阻塞,通过线程池处理)

    @Bean
        public TaskScheduler pool(){
            ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
            threadPoolTaskScheduler.setPoolSize(10);
            return threadPoolTaskScheduler;
        }
    

    或者增加配置类扩大线程数量

本文标签: 解决方案schedule