阅读量:7
SpringBoot中实现定时任务的方式有两种:
- 使用注解:在定时任务的方法上添加@Scheduled注解,指定定时任务的触发规则,如固定间隔时间、固定延迟时间或cron表达式。示例代码如下:
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class MyScheduledTask { @Scheduled(fixedRate = 5000) // 每隔5秒执行一次 public void task() { // 定时任务执行的代码 } }
- 实现SchedulingConfigurer接口:通过实现SchedulingConfigurer接口来动态地配置定时任务的触发规则。示例代码如下:
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内置了定时任务执行器,会自动调度定时任务的执行。