溫馨提示×

SpringBoot定時(shí)任務(wù)是怎么實(shí)現(xiàn)的

小億
82
2024-04-09 16:35:39
欄目: 編程語言

SpringBoot中實(shí)現(xiàn)定時(shí)任務(wù)的方式有兩種:

  1. 使用注解:在定時(shí)任務(wù)的方法上添加@Scheduled注解,指定定時(shí)任務(wù)的觸發(fā)規(guī)則,如固定間隔時(shí)間、固定延遲時(shí)間或cron表達(dá)式。示例代碼如下:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MyScheduledTask {

    @Scheduled(fixedRate = 5000) // 每隔5秒執(zhí)行一次
    public void task() {
        // 定時(shí)任務(wù)執(zhí)行的代碼
    }
}
  1. 實(shí)現(xiàn)SchedulingConfigurer接口:通過實(shí)現(xiàn)SchedulingConfigurer接口來動態(tài)地配置定時(shí)任務(wù)的觸發(fā)規(guī)則。示例代碼如下:
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.stereotype.Component;

@Configuration
public class MyScheduledTask implements SchedulingConfigurer {

    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        taskRegistrar.addFixedRateTask(() -> {
            // 定時(shí)任務(wù)執(zhí)行的代碼
        }, 5000); // 每隔5秒執(zhí)行一次
    }
}

無論采用哪種方式,都需要在啟動類上添加@EnableScheduling注解來啟用定時(shí)任務(wù)的支持。SpringBoot內(nèi)置了定時(shí)任務(wù)執(zhí)行器,會自動調(diào)度定時(shí)任務(wù)的執(zhí)行。

0