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定时任务 - 经典定时任务设计:时间轮(Timing Wheel)案例和原理
SpringBoot定时任务 - Spring自带的定时任务是如何实现的?有何注意点?