xml的方式这里就不写了,使用也比较麻烦,这里放一篇教程
https://blog.csdn.net/qq_33556185/article/details/51852537
下面是Spring Boot的整合@Scheduled的使用方式
首先先写一个Spring Task的配置类,配置线程池,防止因为一个定时任务执行时间过长导致其他定时任务出错
import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import java.util.concurrent.Executors; @Configuration public class SchedulerConfig implements SchedulingConfigurer { //开启线程池 @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(Executors.newScheduledThreadPool(100)); } }
然后写一个自己的定时任务
import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.time.Instant; import java.util.Date; @Component @Slf4j public class MyScheduler { @Scheduled(fixedRate = 2000) public void firstTask(){ log.info("第一个任务启动,时间:" + new Date()); } @Scheduled(cron = "* * * * * ?") public void secondTask(){ log.info("第二个定时任务启动,时间: " + Instant.now()); } }
最后在Spring Boot启动类上加上@EnableScheduling注解开定时任务就可以了