Spring定时任务@Scheduled注解使用

xml的方式这里就不写了,使用也比较麻烦,这里放一篇教程

https://blog.csdn.net/qq_33556185/article/details/51852537

下面是Spring Boot的整合@Scheduled的使用方式

首先先写一个Spring Task的配置类,配置线程池,防止因为一个定时任务执行时间过长导致其他定时任务出错

import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;

import java.util.concurrent.Executors;

@Configuration
public class SchedulerConfig implements SchedulingConfigurer {

    //开启线程池
    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        taskRegistrar.setScheduler(Executors.newScheduledThreadPool(100));
    }
}

然后写一个自己的定时任务

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.time.Instant;
import java.util.Date;

@Component
@Slf4j
public class MyScheduler {

    @Scheduled(fixedRate = 2000)
    public void firstTask(){
        log.info("第一个任务启动,时间:" + new Date());
    }

    @Scheduled(cron = "* * * * * ?")
    public void secondTask(){
        log.info("第二个定时任务启动,时间: " + Instant.now());
    }
}

最后在Spring Boot启动类上加上@EnableScheduling注解开定时任务就可以了

猜你喜欢

转载自blog.csdn.net/let_me_tell_you/article/details/80587656