SpringBoot中實(shí)現(xiàn)定時(shí)任務(wù)的方式有兩種:
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í)行的代碼
}
}
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í)行。