一、启动类注解
@EnableScheduling
二、配置定时任务
@Component
@Slf4j
public class MyScheduleTask {
private int fixedDelayCount = 1;
private int fixedRateCount = 1;
private int initialDelayCount = 1;
private int cronCount = 1;
/**
* 方法执行完成 3s 之后再次执行
*/
@Scheduled(fixedDelay = 3000)
public void testFixedDelay(){
log.info("fixedDelay第 {} 次执行",fixedDelayCount++);
}
/**
* 执行开始执行 3s 之后再次执行
*/
@Scheduled(fixedRate = 3000)
public void testFixedRate(){
log.info("fixedRate第 {} 次执行",fixedRateCount++);
}
@Scheduled(initialDelay = 1000,fixedDelay = 3000)
public void testInitialDelay(){
log.info("initialDelay第 {} 次执行",initialDelayCount++);
}
@Scheduled(cron = "0/5 * * ? * *")
public void testCron(){
log.info("cron第 {} 次执行",cronCount++);
}
}
三、配置任务调度线程池
@Configuration
public class SchedulePoolConfig {
@Bean
public TaskScheduler taskScheduler(){
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setPoolSize(10);
threadPoolTaskScheduler.setThreadNamePrefix("mySchedule_");
return threadPoolTaskScheduler;
}
}