SpringBoot中實現定時任務的方式有兩種:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class MyScheduledTask {
@Scheduled(fixedRate = 5000) // 每隔5秒執行一次
public void task() {
// 定時任務執行的代碼
}
}
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(() -> {
// 定時任務執行的代碼
}, 5000); // 每隔5秒執行一次
}
}
無論采用哪種方式,都需要在啟動類上添加@EnableScheduling注解來啟用定時任務的支持。SpringBoot內置了定時任務執行器,會自動調度定時任務的執行。