一、SpringSchedule定时任务(三步)
第一步:
启动类加 @EnableScheduling //开启SpringSchedule定时任务,扫描容器
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@MapperScan("com.wxzf.mapper")
@EnableScheduling //开启SpringSchedule定时任务,扫描容器
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
第二步
类名上加 @Component
第三步
方法上加 @Scheduled(cron = “*/5 * * * * *”)
cron表达式百度搜一下
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class CronScheduledTest {
private static Log logger = LogFactory.getLog(CronScheduledTest.class);
/**
* 每隔5秒执行一次
*/
@Scheduled(cron = "*/5 * * * * *")
public void hello(){;
logger.info("定时任务: 每隔5秒执行一次!");
}
}
第四步(可加可不加)
#任务线程池大小
#默认情况下,定时任务的线程池大小只有1,当任务较多执行频繁时,
#会出现阻塞等待的情况,任务调度器就会出现时间漂移,任务执行时间将不确定。
#为了避免此种情况:加spring-task-schedluing
spring:
task:
scheduling:
pool:
size: 10