SpringBoot定時任務配置
阿新 • • 發佈:2019-02-05
一、建立工程
新建SpringBoot工程,在程式的入口增加@EnableScheduling註解。
@SpringBootApplication @MapperScan("com.wzj.demo.mapper") @EnableScheduling public class SpringBootWebSocketApplication extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(SpringBootWebSocketApplication.class, args); } /** * * @param builder a builder for the application context * @return the application builder * @see SpringApplicationBuilder */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return super.configure(builder); } }
二、建立定時任務
在類新增@Component註解,在類的方法上增加@Scheduled註解
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Date; @Component public class TestTimeTask { /** * 首次延時1s,然後每2秒執行一次 */ @Scheduled(initialDelay = 1000,fixedRate = 2000) public void task() { System.out.println(new Date()); } }
@Scheduled註解說明該方法是一個排程任務。
- @Scheduled(fixedRate = 5000) :上一次開始執行時間點之後5秒再執行
- @Scheduled(fixedDelay = 5000) :上一次執行完畢時間點之後5秒再執行
- @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延遲1秒後執行,之後按fixedRate的規則每5秒執行一次
- 也可以通過cron表示式
執行工程,每2秒列印一行時間日誌