1. 程式人生 > >spring boot系列4-定時任務-springboot自帶的scheduled超級簡單

spring boot系列4-定時任務-springboot自帶的scheduled超級簡單

需求:建立一個每天凌晨0點執行的定時任務

1.建立任務

/**
 * @author 天空藍藍的
 */
@Slf4j
@EnableScheduling
@Component
public class MyTask {
    @Async
    @Scheduled(cron = "0 0 0 * * ?")
    public void delEveryDay() throws SchedulerException, InterruptedException {
        log.info("每天凌晨0點開始執行任務");
        //業務程式碼

    }
}

@EnableScheduling  啟用定時任務,可以新增到Application類上 ,此處新增到MyTask類上。

@Scheduled 新增到方法上 ,表示要執行的方法

@Async 並行執行(非同步的),如果想序列執行無需新增

cron表示執行的條件,此處為每天凌晨0點執行

2.Application入口類

@SpringBootApplication
@EnableAsync
public class Start {
    public static void main(String[] args) {
        SpringApplication.run(Start.class, args);
    }
}

@EnableAsync 開啟並行執行(非同步的),如果想序列執行無需開啟

3. 擴充套件

此外我們還可以這樣實現定時任務
例如我們想5秒執行一次任務,程式碼如下

    @Scheduled(fixedDelay = 5000)
    public void towTask(){
        System.out.println("5秒後執行定時任務1");
    }

4.專案經驗溫馨提醒

我們在建立spring的定時任務需要遵循這些規則否則定時任務不會生效

1.類需要使用@Component註解

2.定時任務方法需要註解@Scheduled並且方法不能有返回值和引數

 原始碼下載連結