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执行任务时,就已经是多线程任务啦。

原文地址:https://www.cnblogs.com/huxiaoguang/p/10807295.html

时间: 2024-10-08 10:55:42

Springboot 内置定时器的使用的相关文章

SpringBoot内置的各种Starter是怎样构建的?--SpringBoot源码(六)

注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 温故而知新 本篇接 外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五) 温故而知新,我们来简单回顾一下上篇的内容,上一篇我们分析了SpringBoot外部配置属性值是如何被绑定到XxxProperties类属性上的相关源码,现将外部属性绑定的重要步骤总结如下: 首先是@EnableConfigurationProperties注解import了EnableConfigur

idea中springboot内置tomcat控制台中文乱码解决

在使用idea的时候,在springboot中使用内置的tomcat控制台中中文乱码,这个问题困扰我好长时间了,今天终于解决了 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <ex

SpringBoot内置tomcat启动原理

前言 ? ? ? ? ?不得不说SpringBoot的开发者是在为大众程序猿谋福利,把大家都惯成了懒汉,xml不配置了,连tomcat也懒的配置了,典型的一键启动系统,那么tomcat在springboot是怎么启动的呢?? 内置tomcat ? ? ? ? ?开发阶段对我们来说使用内置的tomcat是非常够用了,当然也可以使用jetty. <dependency> <groupId>org.springframework.boot</groupId> <arti

springboot内置tomcat配置虚拟路径

在Springboot中默认的静态资源路径有:classpath:/METAINF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,从这里可以看出这里的静态资源路径都是在classpath中(也就是在项目路径下指定的这几个文件夹) 试想这样一种情况:一个网站有文件上传文件的功能,如果被上传的文件放在上述的那些文件夹中会有怎样的后果? 网站数据与程序代码不能有效分离: 当项目被打包成一个.jar文件部署时

SpringBoot内置Tomcat缓存文件目录被意外删除导致异常

在项目中,一般会将文件临时保存到缓存目录 当时使用 File.createTempFile("tmp", ext, (File) request.getServletContext().getAttribute(ServletContext.TEMPDIR)) 创建临时文件时,项目一直运行正常,然而有一次报异常: org.springframework.web.multipart.MultipartException: Could not parse multipart servlet

springboot 内置默认启动tomcat容器遇到The valid characters are defined in RFC 7230 and RFC 3986”

URL: http://127.0.0.1:8081/test?urlcount=2&countcname1=参数名1&countname1=参数1&countcname2=参数名2&countname2=参数2 后台模拟post请求时路径报错: The valid characters are defined in RFC 7230 and RFC 3986" 原因是因为url中含有中文. 直接进行中文转义: URLEncoder.encode(参数名1,&qu

使用springboot内置的缓存机制springcache

1.添加注解 加入和查询缓存:第一次查询将查询结果加入缓存,key为id,value为方法的返回结果.再次查询会从gathering中查询指定key值对应的value值.gathering负责存储所有的键值对 修改和删除操作需要删除缓存 优点:使用方便 缺点:不能设置过期时间 原文地址:https://www.cnblogs.com/gdut-lss/p/11419256.html

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

直接上图:搞定(一定要加@EnableScheduling(开启定时任务)这个注解@Component(让spring扫描到)),下面是每五秒执行一次 结果: 原文地址:https://www.cnblogs.com/share-record/p/12283399.html

SpringBoot(十四)_springboot使用内置定时任务的使用

为什么使用定时? 日常工作中,经常会用到定时任务,比如各种统计,并不要求实时性.此时可以通过提前设置定时任务先把数据跑出来,后续处理起来更方便. 本篇文章主要介绍 springboot内置定时任务. 实战演示 1.pom文件 pom 包里面只需要引入 Spring Boot Starter 包即可,Spring Boot Starter 包中已经内置了定时的方法.我这里方便演示,增加了lombok <dependencies> <dependency> <groupId>