当前位置: 首页 > news >正文

Spring Boot 项目中如何使用异步任务

前置知识:

同步任务:

  • 同步任务是在单线程中按顺序执行,每次只有一个任务在执行,不会引发线程安全和数据一致性等并发问题

  • 同步任务需要等待任务执行完成后才能执行下一个任务,无法同时处理多个任务,响应慢,影响用户体验

异步任务:

  • 异步任务是在多线程中同时执行,多个任务可以并发执行,同时处理多个请求,响应快,资源利用率高,用户体验好

  • 异步任务需要创建额外的线程来执行任务操作,可以使用线程池技术,灵活配置线程资源,以提高系统的资源利用率

SpringBoot实现异步任务,提高系统的并发性能和用户体验

步骤:

  1. 创建线程池配置类

/*** 线程池配置类*/
@Configuration
@EnableAsync //  启用异步任务
public class ThreadPoolConfig {@Beanpublic Executor taskExecutor() {// 定义线程池,使用Spring提供的ThreadPoolTaskExecutorThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(10); // 核心线程数executor.setMaxPoolSize(20); // 最大线程数executor.setQueueCapacity(50); // 缓冲队列大小executor.setKeepAliveSeconds(60); // 线程的空闲时间executor.setThreadNamePrefix("AsyncTaskExecutor-"); // 线程前缀executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); // 拒绝处理策略,交由调用方线程运行executor.initialize(); // 初始化return executor;}}

        2. 创建异步任务,使用@Async注解标注

@Component
public class AsyncTask {@Async // 表示该方法是一个异步任务public void doTask() {System.out.println("异步任务--------" + Thread.currentThread().getName());}
}

        3.测试

@SpringBootTest
public class AsyncTest {@Resourceprivate AsyncTask asyncTask;@Testpublic void test() {System.out.println("主线程---------" + Thread.currentThread().getName());asyncTask.doTask();}
}

案例:

Spring Boot 项目中如何使用异步任务(案例)

相关文章:

Spring Boot 项目中如何使用异步任务

前置知识: 同步任务: 同步任务是在单线程中按顺序执行,每次只有一个任务在执行,不会引发线程安全和数据一致性等并发问题 同步任务需要等待任务执行完成后才能执行下一个任务,无法同时处理多个任务,响应慢…...

Scrum实战中遇到的问题与解决方法

在当今快速变化的技术环境中,IT企业面临着持续的市场压力和竞争,传统的瀑布式开发模式已经难以满足现代企业的需要。瀑布模型过于僵化,缺乏灵活性,导致项目经常延期,成本增加,最终可能无法达到预期效果。为…...

全面介绍 Windows 录屏工具:开启录制新篇章

高质量的录屏工具是我们录屏的得力助手。但是日常因为侧重点的不同,比如有的喜欢录制游戏画面、有的需要录制教学视频、演示操作也需要录屏工具。这次我们就来探讨一下windows录屏工具有哪些吧。 1.福晰录屏大师 链接:www.foxitsoftware.cn/REC/ 从这…...

Maven 和 NetBeans:集成与使用

Maven 和 NetBeans:集成与使用 Maven 和 NetBeans 是两款强大的工具,常用于Java开发。Maven是一个项目管理工具,它能够帮助管理项目的构建、报告和文档。NetBeans是一个集成开发环境(IDE),它为Java开发提供了丰富的功能和友好的用户界面。将Maven集成到NetBeans中,可以…...

【系统架构设计师】目录提纲

一、绪论(TODO) 二、计算机与网络基础知识(TODO) 三、信息系统基础知识(TODO) 四、系统开发基础知识(TODO) 五、软件架构设计(TODO) 六、UML建模与架构文…...

【微服务】—SpringBoot入门

⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记仓库👉https://github.com/A-BigTree/tree-learning-notes 个人主页👉https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 文章目录 1 SpringBoot快速入门1.1 SpringBoot简介1.1.1 简介1.1.2…...

Linux: debug: perf: report: --sort

文章目录 简介实例简介 接上回:https://mzhan017.blog.csdn.net/article/details/142689870。 这里介绍perf的这个参数,还是非常的有用,尤其是分析对整个系统做perf record的数据,而不是单个进程做perf record。-s, --sort= : Sort histogram entries by given key(s) - …...

like 模糊查询的底层算法

like 模糊查询的底层算法 全文搜索算法、模糊查询、n-gram分隔算法功能介绍 百度搜索,文心一言给出的结果: SQL模糊查询底层通常使用全文搜索算法,如LIKE操作符和全文索引通常使用的n-gram分割算法。 n-gram是一种将文本分割成固定大小的词…...

【Linux实践】实验九:Shell流程控制语句

文章目录 实验九:Shell流程控制语句实验目的:实验内容:操作步骤:1. 复制*.c文件并排序2. 计算1-10的平方 实验九:Shell流程控制语句 实验目的: 掌握条件判断语句,如if语句、case语句。掌握循环…...

YOLOv8实战TT100K中国交通标志检测【数据集+YOLOv8模型+源码+PyQt5界面】

YOLOv8实战TT100k交通标志识别 文章目录 研究背景资源获取1.前言1.1 YOLO 系列:中国交通标志检测领域的璀璨明星1.2 Transformer与注意力机制:为中国交通标志检测注入新活力1.3 中国交通标志检测技术:迎接挑战,砥砺前行1.4 YOLOv8…...

SQLite3

文章目录 SQLite3 C/CAPI介绍SQLite3 C/C API 使⽤ SQLite3 C/CAPI介绍 C/C API是SQLite3数据库的⼀个客⼾端,提供⼀种⽤C/C操作数据库的⽅法。 SQLite3 C/C API 使⽤ 下⾯我们将这⼏个接⼝封装成⼀个类,快速上⼿这⼏个接口 创建/打开数据库文件针对打开…...

我的创作纪念日一年

目录 机缘 收获 日常 成就 憧憬 机缘 我之所以开始写CSDN博客,源于一段特殊的时光。去年此时,我独自待在实验室,周围的世界仿佛与我无关。没有旅游,没有与朋友的欢聚,情感的挫折和学业的压力如潮水般袭来。在这样的…...

Docker基本操作命令(一)

Docker 是一个开源的应用容器引擎,允许开发者打包应用以及其依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。主要功能是为开发者提供一个简单…...

PGMP-02项目集管理绩效域

目录 1.概要 2.defintions定义 3.Program Management Performance Domain interactions 交互 4. Organizational Strategy, Portfolio Management, and Program Management Linkage 5. Portfolio and Program Distinctions 区别 6. Program and Project Distinctions区别 …...

CAN(Controller Area Network)总线的仲裁机制

CAN(Controller Area Network)总线的仲裁机制是其核心特性之一,它确保了在多节点环境中数据能够高效、公正地传输。以下是对CAN仲裁机制的详细解释和介绍: 一、仲裁机制概述 在CAN总线网络中,各个节点地位平等&#…...

计算机毕业设计 | SpringBoot 房屋租赁网 租房买房卖房平台(附源码)

1,绪论 1.1 背景调研 在房地产行业持续火热的当今环境下,房地产行业和互联网行业协同发展,互相促进融合已经成为一种趋势和潮流。本项目实现了在线房产平台的功能,多种技术的灵活运用使得项目具备很好的用户体验感。 这个项目的…...

OJ在线评测系统 微服务高级 Gateway网关接口路由和聚合文档 引入knife4j库集中查看管理并且调试网关项目

Gateway微服务网关接口路由 各个服务之间已经能相互调用了 为什么需要网关 因为我们的不同服务是放在不同的端口上面的 如果前端调用服务 需要不同的端口 8101 8102 8103 8104 我们最好提供一个唯一的 给前端去调用的路径 我们学习技术的时候必须要去思考 1.为什么要用&am…...

腾讯云上传pushdocker镜像到镜像仓库

文章目录 腾讯云上传docker镜像 腾讯云上传docker镜像 >docker login ccr.ccs.tencentyun.com --usernameXXXXXX用户名>sudo docker tag mynginx:1.0 ccr.ccs.tencentyun.com/crfkitty/mynginx:1.0>docker push ccr.ccs.tencentyun.com/crfkitty/mynginx:1.0 The pu…...

sqli-labs靶场第二关less-2

sqli-labs靶场第二关less-2 本次测试在虚拟机搭建靶场,从主机测试 1、输入?id1和?id2发现有不同的页面回显 2、判断注入类型 http://192.168.128.3/sq/Less-2/?id1’ 从回显判断多一个‘ ,预测可能是数字型注入 输入 http://192.168.128.3/sq/Less…...

Ruby XML, XSLT 和 XPath 教程

Ruby XML, XSLT 和 XPath 教程 1. 引言 Ruby 是一种动态、开放源代码的编程语言,广泛用于网页开发、数据分析和各种自动化任务。在处理 XML(可扩展标记语言)时,Ruby 提供了强大的库和工具,使得解析、转换和提取 XML 数据变得简单高效。本教程将介绍如何使用 Ruby 来处理…...

18V/4A同步降压转换器:MPQ8632GLE-4的COT控制与快速瞬态响应解析

MPQ8632GLE-4:4A/18V 同步降压转换器的紧凑型电源解决方案在通信设备、分布式电源系统以及服务器主板等应用中,电源管理单元需要在小面积内实现高效率的电压转换,同时保持良好的瞬态响应。传统的 PWM 控制器往往需要复杂的环路补偿设计&#…...

非 CTP 柜台连接天勤:众期融航易达等网关差异备忘

前言 天勤除 CTP 外还支持众期、融航、杰宜斯、易达等柜台路线,构造函数与可用报单类型可能不同。我帮同事对接时,会先查文档里对应类名,再在模拟环境测通连与下单,避免直接上实盘试错。 一、选型前先确认的三件事 开户期货公司支…...

车规级LGA封装RK3588开发板:硬件设计与车规应用实战解析

1. 项目概述:当“车规级”遇上“LGA封装”的RK3588 最近在嵌入式圈子里,一个消息引起了不小的讨论:深圳市九鼎创展科技推出了一款搭载LGA封装核心板的RK3588开发板,并且主打车规级应用。对于长期在工业控制和边缘计算领域摸爬滚打…...

Android 相机有线连接开发复盘:PTP/MTP 协议适配与稳定性实践

一、项目背景在做一个相机互联类 App 的过程中,我们需要在 Android 设备上通过 USB 有线方式​ 连接相机,实现:遥控拍摄实时获取照片稳定地进行文件同步最初评估时以为只要调用系统 API 就能跑起来,但实际开发中发现,标…...

人工智能导论:模型与算法(未来发展与趋势)

9 人工智能未来发展和趋势 人工智能作为引领新一轮科技革命和产业变革的战略性技术,正在深刻改变人类社会。本章从类脑计算、自动化机器学习、神经网络压缩、人工智能芯片、量子机器学习、人工智能伦理与治理、人工智能算法开发框架等方面,简要总结人工智…...

联发科MT6873核心板:5G安卓设备开发实战与硬件设计指南

1. 项目概述:MT6873核心板,一款为智能终端注入5G灵魂的“心脏”在智能硬件开发领域,选对一颗“心脏”——也就是核心板或主控模块,往往决定了整个产品的性能上限、功能边界和市场竞争力。今天要深入聊的,就是联发科&am…...

为什么所有人都在聊RAG?看这篇,小白也能彻底搞懂

你是否有过这样的经历——你满怀期待地问 AI 一个专业问题,它流畅地给了你一段"答案",引经据典、逻辑自洽。 结果一查,发现全是错的。一本正经地胡说八道。 这就是大语言模型(LLM)的致命短板:它…...

2026年六大GEO公司排名竞争力横评及企业选型实操指南针

根据易观发布的《中国 GEO 行业发展报告 2026》显示,2026年国内 GEO 市场规模已达 30 亿元,在短短 3 年内实现了 35 倍的爆发式增长,超过 68% 的中大型企业已将生成式引擎优化正式纳入年度预算。在当前由大模型驱动的信息分发范式下&#xff…...

如何用四探针精确测量半导体电阻率

在半导体行业中,准确测量晶圆电阻率是材料研发和制程质量控制的关键环节。随着工艺节点不断缩小,器件对电性一致性的要求日益严格,仅靠经验无法满足现代制造的需求。因此工程师们大量采用四探针方法对电阻率进行高精度测量。相比传统测量方式…...

别再手动转换时间了!用Jackson和Spring的这两个注解,搞定Java日期序列化所有坑

彻底告别Java日期转换噩梦:Jackson与Spring注解实战指南 如果你曾在Java项目中处理过日期时间转换,一定对以下场景不陌生:前端传过来的字符串日期需要手动解析成Date对象,返回给前端的日期格式乱七八糟,时区问题导致时…...