Spring定時任務

在企業的實際生產中,可能需要使用一些定時任務。在Spring中使用定時器是比較簡單的,首先在配置文件中加入@EnabelScheduling,就能夠使用註解驅動定時任務的機制,然後可以通過註解@Scheduled去配置如何定時。

我們先在Spring Boot的啓動類中加入@EnabelScheduling註解,然後開一個服務類,代碼如下:

package com.martin.config.other.scheduler;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

/**
 * @author: martin
 * @date: 2020/2/6
 */
@Service
@Slf4j
public class ScheduleServiceImpl implements SchedeluService {
    @Scheduled(fixedRate = 1000)
    @Async
    @Override
    public void job1() {
        log.error("job1執行:{}", Thread.currentThread().getName());
    }

    @Scheduled(fixedRate = 2000)
    @Override
    public void job2() {
        log.error("job2執行:{}", Thread.currentThread().getName());
    }
}

註解@Scheduled配置爲按指定時間間隔執行,使用@Async註解代表這需要使用異步線程去執行。輸出的結果如下:

2020-02-06 16:59:33.483 ERROR 9908 --- [lTaskExecutor-6] c.m.c.o.scheduler.ScheduleServiceImpl    : job1執行:ThreadPoolTaskExecutor-6
2020-02-06 16:59:34.484 ERROR 9908 --- [pool-1-thread-1] c.m.c.o.scheduler.ScheduleServiceImpl    : job2執行:pool-1-thread-1
2020-02-06 16:59:34.486 ERROR 9908 --- [lTaskExecutor-7] c.m.c.o.scheduler.ScheduleServiceImpl    : job1執行:ThreadPoolTaskExecutor-7
2020-02-06 16:59:35.485 ERROR 9908 --- [lTaskExecutor-8] c.m.c.o.scheduler.ScheduleServiceImpl    : job1執行:ThreadPoolTaskExecutor-8
2020-02-06 16:59:36.483 ERROR 9908 --- [pool-1-thread-1] c.m.c.o.scheduler.ScheduleServiceImpl    : job2執行:pool-1-thread-1
2020-02-06 16:59:36.485 ERROR 9908 --- [lTaskExecutor-9] c.m.c.o.scheduler.ScheduleServiceImpl    : job1執行:ThreadPoolTaskExecutor-9
2020-02-06 16:59:37.485 ERROR 9908 --- [TaskExecutor-10] c.m.c.o.scheduler.ScheduleServiceImpl    : job1執行:ThreadPoolTaskExecutor-10
2020-02-06 16:59:38.484 ERROR 9908 --- [pool-1-thread-1] c.m.c.o.scheduler.ScheduleServiceImpl    : job2執行:pool-1-thread-1

除了指定時間間隔執行,@Scheduled註解還提供了一些其他的配置項:

這些配置項中,cron是我們比較常見的使用方式,cron可以通過表達式更爲靈活地配置運行得方式,關於cron的使用我們可以參考http://cron.qqe2.com/

到這裏,關於Spring定時任務使用就介紹到這裏,你掌握了嗎?

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