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
定時任務表達式