首先在入口处加上开启定时任务注解
@EnableScheduling
@SpringBootApplication
public class WxApplication {
public static void main(String[] args) {
SpringApplication.run(WxApplication.class, args);
}
}
需要执行的任务上面加上 @component注解 交给spring管理;
@lazy(false) 不能设置为true 懒加载spring不会主动加载,调用的时候才回去加载。
@Component
//@Slf4j
//@Lazy(true)
public class SpringTask {
@Scheduled(cron = "*/5 * * * * ?")
public void checkDemolishTiem() {
System.out.println("定时任务开启-------------------------------");
System.out.println("定时扫描结束---------------------");
}
}
多线程线程池配置
@Configuration
@ConditionalOnProperty(prefix = "spring.schedule", name = "enable",havingValue = "true", matchIfMissing = true)
public class ScheduleConfig {
@Bean
public ScheduledThreadPoolExecutor taskScheduler() {
ScheduledThreadPoolExecutor threadPoolTaskScheduler = new ScheduledThreadPoolExecutor(10);
return threadPoolTaskScheduler;
}
}
配置文件
#spring.schedule.enable=true
spring:
schedule:
enable: true