springboot定时任务基于注解

 

 

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

定时任务表达式

点击打开链接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章