在Spring Boot中編寫定時任務是很是簡單的事,下面經過實例介紹如何在Spring Boot中建立定時任務,實現每過5秒輸出一下當前時間。html
@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(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表達式定義規則