温馨提示×

SpringBoot定时任务是怎么实现的

小亿
82
2024-04-09 16:35:39
栏目: 编程语言

SpringBoot中实现定时任务的方式有两种:

  1. 使用注解:在定时任务的方法上添加@Scheduled注解,指定定时任务的触发规则,如固定间隔时间、固定延迟时间或cron表达式。示例代码如下:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MyScheduledTask {

    @Scheduled(fixedRate = 5000) // 每隔5秒执行一次
    public void task() {
        // 定时任务执行的代码
    }
}
  1. 实现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内置了定时任务执行器,会自动调度定时任务的执行。

0