Spring Boot 内置定时任务
启用定时任务
@SpringBootApplication
@EnableScheduling // 启动类添加 @EnableScheduling 注解
public class ScheduleDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(ScheduleDemoApplication.class, args);
    }
}
新增定时任务类
@Component // 类上添加 @Component 注解
public class TaskDemo {
    private static final Logger logger = LoggerFactory.getLogger(TaskDemo.class);
    @Scheduled(cron = "0/5 * * * * ? ") // 方法上添加 @Scheduled 注解
    public void job1(){
        try {
            logger.info("job1");
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    @Scheduled(cron = "0/5 * * * * ? ")
    public void job2(){
        try {
            logger.info("job2");
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
多线程执行
从上面图片可以看到开启多个任务是以单线程执行的,执行完当前任务才会继续执行下一个
启用多线程执行有两种方式:
使用默认线程池
@Component
@EnableAsync // 类上添加 @EnableAsync 注解
public class TaskDemo {
    ... ...
    @Async // 方法上添加 @Async 注解
    @Scheduled(cron = "0/5 * * * * ? ")
    public void job1(){
        ... ...
    }
    ... ...
}
使用自定义线程池
添加配置类:
@Configuration
public class SchedulerConfig implements SchedulingConfigurer {
    @Override
    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
        ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
        threadPoolTaskScheduler.setPoolSize(2);
        threadPoolTaskScheduler.setThreadNamePrefix("my-pool-");
        threadPoolTaskScheduler.initialize();
        scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
    }
}
参考
Spring Boot 内置定时任务的更多相关文章
- Spring boot 内置tomcat禁止不安全HTTP方法
		
Spring boot 内置tomcat禁止不安全HTTP方法 在tomcat的web.xml中可以配置如下内容,让tomcat禁止不安全的HTTP方法 <security-constraint ...
 - 009-Spring Boot 事件监听、监听器配置与方式、spring、Spring boot内置事件
		
一.概念 1.事件监听的流程 步骤一.自定义事件,一般是继承ApplicationEvent抽象类 步骤二.定义事件监听器,一般是实现ApplicationListener接口 步骤三.启动时,需要将 ...
 - 自定义Spring Boot内置tomcat的404页面
		
spring boot 的相关404页面配置都是针对项目路径下的(如果配置了 context-path) 在context-path不为空的情况下,如果访问路径不带context-path,这时候会显 ...
 - Spring boot内置Tomcat的临时目录被删除导致文件上传不了-问题解析
		
目录 1.问题 2.1. 为什么需要使用这个/tmp/tomcat*? 2.2.那个 /tmp/tomcat* 目录为什么不存在? 三.解决办法 修改 springboot 配置,不要在/tmp 下创 ...
 - Spring Boot内置Tomcat
		
Spring Boot默认支持Tomcat/Jetty/Undertow作为底层容器.在之前实战相关的文章中,可以看到引入spring-boot-starter-web就默认使用tomcat容器,这是 ...
 - 配置spring boot 内置tomcat的accessLog日志
		
#配置内置tomcat的访问日志server.tomcat.accesslog.buffered=trueserver.tomcat.accesslog.directory=/home/hygw/lo ...
 - SpringBoot(十四)_springboot使用内置定时任务Scheduled的使用(一)
		
为什么使用定时? 日常工作中,经常会用到定时任务,比如各种统计,并不要求实时性.此时可以通过提前设置定时任务先把数据跑出来,后续处理起来更方便. 本篇文章主要介绍 springboot内置定时任务. ...
 - 【spring boot】spring boot中使用定时任务配置
		
spring boot中使用定时任务配置 =============================================================================== ...
 - Spring MVC内置支持的4种内容协商方式【享学Spring MVC】
		
每篇一句 十个光头九个富,最后一个会砍树 前言 不知你在使用Spring Boot时是否对这样一个现象"诧异"过:同一个接口(同一个URL)在接口报错情况下,若你用rest访问,它 ...
 
随机推荐
- .NetCore操作MongDB简要代码实现
			
.NetCore操作MongoDB简要代码实现 在接触过的大多数使用mongodb的情景中,基本上都是用mongodb来存储日志的. mongodb是作为一种文档型的数据库,在管理日志文档上确实比较适 ...
 - 关于synchronized无法锁住Integer原因
			
原因 在多线程的时候,为了保证数据安全,必须在修改数据时使用线程同步,java中的synchronized用来实现线程同步.线程列队. 学完多线程基础的我,写一个多线程交替输出1,2,3,4,5... ...
 - java的高并发IO原理,阻塞BIO同步非阻塞NIO,异步非阻塞AIO
			
原文地址: IO读写的基础原理 大家知道,用户程序进行IO的读写,依赖于底层的IO读写,基本上会用到底层的read&write两大系统调用.在不同的操作系统中,IO读写的系统调用的名称可能不完 ...
 - java实现科研信息管理系统
			
一.前言 本学期学习了JAVA语言,在学期的结束,写一个有操作界面,与数据库关联的管理系统,用来巩固自己本学习所学的知识.用到的知识:JAVA基础,JAVA界面设计(GUI),Oracle数据库(需要 ...
 - layui系列学习第一天
			
新开一个博客系列 记录下layui学习过程及感受 今天受到很大的打击 ...希望 自己能坚持做好 到1.12号可以完成这个博客 一.基础说明 layui css 命名规范:1.layui-模块名- ...
 - 基于gin的golang web开发:mysql增删改查
			
Go语言访问mysql数据库需要用到标准库database/sql和mysql的驱动.标准库的Api使用比较繁琐这里再引入另一个库github.com/jmoiron/sqlx. go get git ...
 - tp3.2展示列表
			
public function get_list($where=array(),$field="",$order = "id desc"){ $field = ...
 - VMware 虚拟机下CentOS 7连接网络
			
查看主机网络配置 ipconfig 1.在centos打开终端命令 2. 输入命令 cd /etc/sysconfig/network-scripts/ 进入文件 输入 ls查看此文件夹下的文件 3 ...
 - 【转】Lisp的本质
			
Lisp的本质: http://www.csdn.net/article/2012-11-22/2812113-The-Nature-Of-Lisp###
 - JS中的Array之方法(2)
			
colors=['red','green','black','blue']; (1). concat(element[|other array]) //联接数组 colors.concat('ye ...