1. 程式人生 > >十三、springboot集成定時任務(Scheduling Tasks)

十三、springboot集成定時任務(Scheduling Tasks)

rep init BE ide 是我 Language dde 只需要 控制臺

定時任務(Scheduling Tasks)

在springboot創建定時任務比較簡單,只需2步:

  • 1.在程序的入口加上@EnableScheduling註解。
  • 2.在定時方法上加@Scheduled註解。

1、springboot默認已經幫我們實現了定時任務,只需要添加相應的註解就可以實現

  spring-boot-starter

2、啟動類啟用定時

  在Spring Boot的主類中加入@EnableScheduling註解,啟用定時任務的配置

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

3、創建定時任務實現類

創建一個定時任務,每過5s在控制臺打印當前時間。

@Component
public class ScheduledTasks {

    private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class
); private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); @Scheduled(fixedRate = 5000) public void reportCurrentTime() { log.info("The time is now {}", dateFormat.format(new Date())); } }

4、參數說明

  @Scheduled詳解

    通過在方法上加@Scheduled註解,表明該方法是一個調度任務。

    @Scheduled 參數可以接受兩種定時的設置,一種是我們常用的cron="*/6 * * * * ?",一種是 fixedRate = 6000,兩種都表示每隔六秒打印一下內容

@Scheduled(fixedRate = 5000) :上一次開始執行時間點之後5秒再執行
@Scheduled(fixedDelay = 5000) :上一次執行完畢時間點之後5秒再執行
@Scheduled(initialDelay=1000, fixedRate=5000) :第一次延遲1秒後執行,之後按fixedRate的規則每5秒執行一次
@Scheduled(cron="*/5 * * * * *") :通過cron表達式定義規則

參考:Scheduling Tasks

十三、springboot集成定時任務(Scheduling Tasks)