import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling//开启对定时任务的支持
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
项目启动定时任务启动
@Slf4j
@Component
public class Atask {
@Scheduled(cron = "*/10 * * * * ?")//按照指定时间执行
public void aTask(){
log.info("10秒执行一次当前时间");
}
@Scheduled(fixedRate = 5000)//fixedRate间隔固定的时间触发定时任务
public void aaa(){
log.info("5秒执行一次");
}
}
根据设定的时间表达式触发定时任务
触发结果
2018-04-13 13:59:47.020 INFO 8240 --- [pool-1-thread-1] com.example.myproject.atask.Atask : 5秒执行一次
2018-04-13 13:59:50.002 INFO 8240 --- [pool-1-thread-1] com.example.myproject.atask.Atask : 10秒执行一次
2018-04-13 13:59:52.020 INFO 8240 --- [pool-1-thread-1] com.example.myproject.atask.Atask : 5秒执行一次
2018-04-13 13:59:57.020 INFO 8240 --- [pool-1-thread-1] com.example.myproject.atask.Atask : 5秒执行一次
2018-04-13 14:00:00.000 INFO 8240 --- [pool-1-thread-1] com.example.myproject.atask.Atask : 10秒执行一次
2018-04-13 14:00:02.021 INFO 8240 --- [pool-1-thread-1] com.example.myproject.atask.Atask : 5秒执行一次
2018-04-13 14:00:07.020 INFO 8240 --- [pool-1-thread-1] com.example.myproject.atask.Atask : 5秒执行一次
2018-04-13 14:00:10.002 INFO 8240 --- [pool-1-thread-1] com.example.myproject.atask.Atask : 10秒执行一次
2018-04-13 14:00:12.020 INFO 8240 --- [pool-1-thread-1] com.example.myproject.atask.Atask : 5秒执行一次
定时任务只需这两个注解即可
@EnableScheduling,
@Scheduled
定时任务表达式