Springboot定时任务 Spring task

2023-09-14 19:05:57

Spring Task 简单操作

SpringBoot注解开始

@EnableScheduling
@SpringBootApplication
//开启spring task
@EnableScheduling
//开启多线程
@EnableAsync
public class SpringTaskApplication {
   public static void main(String[] args) {
       SpringApplication.run(SpringTaskApplication.class, args);
   }
}
1.fixDelay
程序开始运行后,在上一个任务结束时 间隔 固定时间再次执行
  @Scheduled(fixedDelay = 3000)

在这里插入图片描述

 @Scheduled(fixedDelay = 3000)
    //fixedDelay  上一个任务结束 等待 3s 则下一个任务开始
    public void fixedDelay(){
        log.info("这里是delayTask执行");
    }
执行结果

在这里插入图片描述

2.fixedRate单线程
fixedRate 上一个任务开始,间隔3s下一个人任务开始  
但是如果单线程操作则无法看到,需要配置为多线程
 @Scheduled(fixedRate = 10000)

在这里插入图片描述

    @Scheduled(fixedRate = 10000)
//    fixedRate 上一个任务开始,间隔10s下一个任务开始
//    但是如果单线程操作则无法看到,需要调节至多线程
    public void fixedRate(){
        ThreadUtil.safeSleep(11000);
        log.info("这里是fixedRateTask执行");
    }
执行结果

在这里插入图片描述

3.fixedRate多线程
多线程须在在类上加上@EnableAsync 在方法上加上@Scheduled(fixedRate = 10000)
@Async 这样才能改为多线程

在这里插入图片描述

    @Scheduled(fixedRate = 10000)
    @Async
//    fixedRate 上一个任务开始,间隔10s下一个任务开始
//    但是如果单线程操作则无法看到,需要调节至多线程
    public void fixedRate(){
        ThreadUtil.safeSleep(11000);
        log.info("这里是fixedRateTask执行");
    }

执行结果

在这里插入图片描述

4.initialDelay
第一次延迟多长时间后再执行 @Scheduled(initialDelay = 5000,fixedDelay = 2000)

在这里插入图片描述

    @Scheduled(initialDelay = 5000,fixedDelay = 2000)
//    initialDelay 第一个Task 5s后执行 其余2s
    public void initialDelay(){
        log.info("这里是initialDelayTask执行");
    }
执行结果

在这里插入图片描述

5.cron(推荐)
该参数接收一个cron表达式,cron表达式是一个字符串,字符串以5或6个空格隔开,
分开共6或7个域,每一个域代表一个含义。**corn基本可以生成所有想用的周期**
(点击下方链接即可在线生成)@Scheduled(cron = "10/3 * * * * ? ")

请添加图片描述

在线生成cron

    @Scheduled(cron = "10/3 * * * * ? ")
//    cron 第一个Task 5s后执行 其余3s
    public void cron(){
        log.info("这里是corn执行");
    }

在这里插入图片描述

6.任务调度配置
如果只是简单使用,不配置也能使用
# 任务调度线程池大小 默认 1 建议根据任务加大,工厂经理, 如果不开启异步,就是经理们亲自干活
spring.task.scheduling.pool.size=1
# 调度线程名称前缀 默认 scheduling-
spring.task.scheduling.thread-name-prefix=scheduling-
# 线程池关闭时等待所有任务完成
spring.task.scheduling.shutdown.await-termination=
# 调度线程关闭前最大等待时间,确保最后一定关闭
spring.task.scheduling.shutdown.await-termination-period=

# 任务执行线程池配置
# 是否允许核心线程超时
spring.task.execution.pool.allow-core-thread-timeout=true
#  核心线程池大小 默认 8
spring.task.execution.pool.core-size=8
# 线程空闲等待时间 默认 60s
spring.task.execution.pool.keep-alive=60s
# 线程池最大数  根据任务定制
spring.task.execution.pool.max-size=10
马上中秋节

请添加图片描述

更多推荐

LeetCode 面试题 04.08. 首个共同祖先

文章目录一、题目二、C#题解一、题目设计并实现一个算法,找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意:这不一定是二叉搜索树。例如,给定如下二叉树:root=[3,5,1,6,2,0,8,null,null,7,4]3/\51/\/\6208/\74点击此处跳转题目。示例1:输入:

Kafka消费者组重平衡(二)

文章目录概要重平衡通知机制消费组组状态消费端重平衡流程Broker端重平衡流程概要上一篇Kafka消费者组重平衡主要介绍了重平衡相关的概念,本篇主要梳理重平衡发生的流程。为了更好地观察,数据准备如下:kafka版本:kafka_2.13-3.2.1控制台创建topic(2个分区1个副本):bin/kafka-topic

详细指南:基于差分进化的马尔可夫链蒙特卡罗加速技术在MATLAB中的应用

第一部分:概念简介与基础知识1.什么是马尔可夫链蒙特卡罗(MarkovChainMonteCarlo,MCMC)?马尔可夫链蒙特卡罗是一种通过马尔可夫链来估计复杂分布的统计方法。通过构建一个特定的马尔可夫链,使其平稳分布等于目标分布,我们可以从该马尔可夫链中抽取样本来估计目标分布的统计性质。2.差分进化(Differe

实战SRC漏洞挖掘全过程,流程详细【网络安全】

前言记录一次完整的某SRC漏洞挖掘实战,为期一个多星期。文章有点长,请耐心看完,记录了完整的SRC漏洞挖掘实战渗透过程因为选择的幸运儿没有对测试范围进行规划,所以此次范围就是没有范围。先上主域名看一眼,看看能收集到什么有效信息:发现存在搜索框:测试点+1对页面点点点没发现什么有用的页面。抓包看看,发现网站搭建了CDN,

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?

Elasticsearch从7.3版本开始支持向量搜索。从8.0开始支持带有HNSW的ANN向量搜索。目前Elasticsearch已经是全球下载量最多的向量数据库。它允许使用密集向量和向量比较来搜索文档。矢量搜索在人工智能和机器学习领域有许多重要的应用。有效存储和检索向量的数据库对于构建生产就绪的AI/ML服务至关重

您距离一个成熟安全的 DevOps 平台,只差一个迁移

历经14年的发展后,DevOps已经不再是一个鲜为人知的术语,国内外众多企业在成熟方法论和复杂工具链的加持下,通过DevOps的落地实践实现了软件交付效率的提升。随着DevOps的深入发展,DevOps的市场规模也在进一步快速发展。根据ResearchandMarkets的调研数据,2020年全球DevOps市场规模大

springboot和vue:阿里云云服务器ECS的购买与基础参数配置+XShell远程连接服务器

云服务器ECS的特点弹性水平拓展的应用场景:譬如微博热搜爆了,则需要水平拓展。其他功能ECS一般提供自动宕机迁移、数据备份和回滚、系统性能报警等功能,稳定性更高阿里云服务器的购买(针对学生党学习自用)其他:推荐支付宝登录创建ECS登陆进去后可以从两个地方创建ECS。地方一:直接点击创建我的ECS(如果你没有买过的话)地

十二、LCD1602

十二、LCD1602介绍功能函数介绍引脚和应用电路时许结构功能函数#include<REGX52.H>//引脚定义sbitLCD_RS=P2^6;sbitLCD_RW=P2^5;sbitLCD_E=P2^7;#defineLCD_DataPortP0/***@briefLCD1602延时函数,12MHz调用可延时1ms

TCP/IP、DTN网络通信协议族

TCP/IP从19世纪60年代计算机网络发展开始,网络协议技术已经经历了半个多世纪的发展,地面互联网已经形成了以传输控制协议(TCP)/IP协议体系为主的网络架构。TCP/IP体系发源于计算机网络,是一种以主机为中心的网络协议体系,IP地址直接对应到主机,主机与主机之间的数据可靠传输采用“端到端原则”。随着移动通信技术

Kafka自带zookeeper---集群安装部署

kafka简介kafka官网:http://kafka.apache.org/kafka下载页面:http://kafka.apache.org/downloadskafka配置快速入门:http://kafka.apache.org/quickstart首先让我们看几个基本的消息系统术语:•Kafka将消息以topi

PCIE基础知识-3

PCIE三种传输方式:IO中断,DMA,peertopeer中断:PCI设备需要向内存(SDRAM)中写入一些数据,该PCI设备会向CPU请求一个中断,然后CPU首先先通过PCI总线把该PCI设备的数据读取到CPU内部的寄存器中,然后再把数据从内部寄存器写入到内存(SDRAM)中。DMA:直接内存访问(DMA,Dire

热文推荐