Spring Boot教程(十五)使用@Scheduled建立定時任務

建立定時任務

在Spring Boot中編寫定時任務是很是簡單的事,下面經過實例介紹如何在Spring Boot中建立定時任務,實現每過5秒輸出一下當前時間。html

  • 在Spring Boot的主類中加入@EnableScheduling註解,啓用定時任務的配置
    @SpringBootApplication
    @EnableScheduling
    public class Application {
    
    	public static void main(String[] args) {
    		SpringApplication.run(Application.class, args);
    	}
    
    }

     

  • 建立定時任務實現類
    @Component
    public class ScheduledTasks {
    
        private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
    
        @Scheduled(fixedRate = 5000)
        public void reportCurrentTime() {
            System.out.println("如今時間:" + dateFormat.format(new Date()));
        }
    
    }

     

  • 運行程序,控制檯中能夠看到相似以下輸出,定時任務開始正常運做了。
    2016-05-15 10:40:04.073  INFO 1688 --- [           main] com.didispace.Application                : Started Application in 1.433 seconds (JVM running for 1.967)
    如今時間:10:40:09
    如今時間:10:40:14
    如今時間:10:40:19
    如今時間:10:40:24
    如今時間:10:40:29522
    如今時間:10:40:34

    關於上述的簡單入門示例也能夠參見官方的Scheduling Tasksspring

    @Scheduled詳解

    在上面的入門例子中,使用了@Scheduled(fixedRate = 5000) 註解來定義每過5秒執行的任務,對於@Scheduled的使用能夠總結以下幾種方式:ide

  • @Scheduled(fixedRate = 5000) :上一次開始執行時間點以後5秒再執行
  • @Scheduled(fixedDelay = 5000) :上一次執行完畢時間點以後5秒再執行
  • @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延遲1秒後執行,以後按fixedRate的規則每5秒執行一次
  • @Scheduled(cron="*/5 * * * * *") :經過cron表達式定義規則
  • 源碼來源
相關文章
相關標籤/搜索