Springboot 内置定时器的使用

Posted huxiaoguang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot 内置定时器的使用相关的知识,希望对你有一定的参考价值。

定时器又叫定时任务、计划任务,在项目开发中使用比较普遍,它能够定时执行规定的任务,例如:订单到期处理、会员到期处理、数据报表生成等

Springboot内置的定时任务  默认是单线程,使用非常方便,使用时要在Application中设置启用定时任务功能@EnableScheduling,代码如下:

1.启用定时任务功能

@SpringBootApplication
@EnableScheduling
@MapperScan("main.blog.mapper")

public class BootApplication {

    public static void main(String[] args) {
        SpringApplication.run(BootApplication.class, args);
    }
}

2.使用@Scheduled注解执行定时任务

/**
* 每隔5秒执行一次
* @param model 
* @return string
*/
@Scheduled(fixedRate = 5000)
public void testTasks() 
{
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy:mm:dd HH:mm:ss");
    System.out.println("定时任务执行时间:" + dateFormat.format(new Date()));
}

 

3.多线程定时任务的使用

在config下新增配置文件SchedulerConfig.java ,配置自定义线程池,代码如下:

@Configuration
@EnableScheduling  //开启定时器
public class SchedulerConfig implements SchedulingConfigurer {

    @Override
    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
        //多线程配置
        scheduledTaskRegistrar.setScheduler(taskExecutor());
    }

    @Bean
    public Executor taskExecutor() {
        return Executors.newScheduledThreadPool(100);
    }
}
然后再用@Scheduled执行任务时,就已经是多线程任务啦。

以上是关于Springboot 内置定时器的使用的主要内容,如果未能解决你的问题,请参考以下文章

springboot内置的定时任务简单使用

springboot----数据层技术的选择+各种整合(缓存,消息队列)+定时任务+发邮件

SpringBoot定时任务 - 经典定时任务设计:时间轮(Timing Wheel)案例和原理

SpringBoot定时任务 - Spring自带的定时任务是如何实现的?有何注意点?

Spring Boot 中使用 Spring Task 实现定时任务

Spring Boot 中使用 Spring Task 实现定时任务