spring boot的@Async注解有什么坑?

Spring Boot 中 @Async 注解的常见坑(2025-2026 真实生产环境高频问题汇总,按严重程度排序)

排名坑的名称严重程度发生概率典型表现/后果解决/规避方案(推荐做法)
1同一个类内部方法调用不生效★★★★★★★★★★内部调用 @Async 方法,仍然同步执行1. 把 @Async 方法抽到另一个 Bean
2. 使用 AopContext.currentProxy()(不推荐)
3. 注入自己(Self Injection)最常用
2没有显式配置 Async 配置类★★★★½★★★★默认单线程池,线程池瞬间打满,所有异步任务排队甚至死锁必须自定义 ThreadPoolTaskExecutor 或使用 @EnableAsync + 自定义配置类
3线程池配置不当导致 OOM/任务堆积★★★★★★★★½队列无限增长 → OOM 或响应极慢合理设置核心/最大线程数 + 有界队列 + 拒绝策略(CallerRunsPolicy 较安全)
4@Async 方法抛异常调用方收不到★★★★★★★★异常被线程池吞掉,调用方完全感知不到1. 方法签名返回 CompletableFuture 并 get() 或 join()
2. 实现 AsyncUncaughtExceptionHandler
5事务失效(@Transactional + @Async)★★★★★★★½异步方法里的事务不生效或不回滚1. 异步方法不要加 @Transactional(推荐)
2. 或者把事务方法和异步方法分开
6使用默认的 SimpleAsyncTaskExecutor★★★½★★★★每次调用都 new 线程,无线程复用,性能极差坚决不要使用默认,必须自定义线程池
7返回 void 的异步方法异常丢失★★★½★★★void 方法抛异常完全无声无息实现 AsyncUncaughtExceptionHandler 或改用返回 Future 类型
8线程上下文丢失(MDC、RequestContext、TenantId 等)★★★★★★½日志 traceId 丢失、租户信息丢失、安全上下文丢失使用 TaskDecorator 包装 Runnable,复制上下文
9@Async 用在静态方法/私有方法★★★★★½压根不生效(AOP 无法代理)只能用在 public 非静态方法上
10大量 @Async 导致线程饥饿★★½★★★核心业务线程池被异步任务占满,导致主流程卡死1. 给不同业务类型使用不同线程池
2. 控制异步任务总量

目前生产环境最推荐的安全写法模板(2025-2026 共识)

@Configuration@EnableAsyncpublicclassAsyncConfigimplementsAsyncConfigurer{@OverridepublicExecutorgetAsyncExecutor(){ThreadPoolTaskExecutorexecutor=newThreadPoolTaskExecutor();executor.setCorePoolSize(8);// 根据机器核数调整executor.setMaxPoolSize(32);executor.setQueueCapacity(500);// 有界队列executor.setThreadNamePrefix("Async-");// 拒绝策略:由调用者线程执行(防止任务丢失)executor.setRejectedExecutionHandler(newThreadPoolExecutor.CallerRunsPolicy());executor.setWaitForTasksToCompleteOnShutdown(true);executor.setAwaitTerminationSeconds(60);executor.initialize();returnexecutor;}// 捕获 void 方法的未捕获异常@OverridepublicAsyncUncaughtExceptionHandlergetAsyncUncaughtExceptionHandler(){return(ex,method,params)->{log.error("异步方法异常!method={}, params={}",method.getName(),params,ex);// 可选:发送告警};}}

总结:最容易踩的 3 个大坑(面试/生产必背)

  1. 同一个类里调用 @Async 方法不生效→ 这是 90% 以上初学者都会踩的坑
  2. 没有自定义线程池→ 默认单线程或无限线程,迟早出事
  3. 异常感知不到 + 上下文丢失→ 日志断层、问题定位困难、生产事故高发

一句话结论:

@Async 看着简单,用好了是性能利器,用不好就是定时炸弹。
生产环境用 @Async 的第一原则:必须自定义线程池 + 必须把异步方法抽到独立的 @Service 类里 + 必须想好异常怎么感知。

如果你目前项目里已经在用 @Async,建议对照上面表格检查一遍配置和使用方式,能省很多半夜被叫醒的麻烦~ 😅

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1182721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026年1月树枝/竹子粉碎机优选厂家:威威机械三十载匠心深耕农林加工领域 - 深度智识库

2026年1月正值农林废弃物集中处理、春季育苗备料的关键周期,树枝、竹子等纤维质物料的高效粉碎需求显著攀升。随着行业集中度逐步提升,深耕小型破碎领域三十余载的郑州市伟巍机械有限公司(旗下品牌“威威”),凭借…

如果希望做c++相关的工作,该如何系统学习c++?

如果希望做 C 相关的工作,该如何系统学习 C? (2025-2026 年最现实的就业导向学习路径) 以下路径按照真正能找到工作的优先级排序,而不是按照“语言特性出现的先后顺序”。 不同目标对应的现实学习时长与难度对比&…

成都硕士留学中介口碑排名出炉,申请成功率高的机构不容错过 - 留学机构评审官

成都硕士留学中介口碑排名出炉,申请成功率高的机构不容错过一、成都硕士留学中介如何选择?高成功率机构有哪些?在搜索引擎中,“成都硕士留学中介哪家好?”、“成都留学机构申请成功率高吗?”是本地学生与家长反复…

Qwen Code CLI - Skill引用

前提:最新版Qwen Code CLI 目前skill还只是实验性特性,文档中强调需要通过--experimental-skills启用,但后面又说明可通过setting配置开启此特性 Agent 技能(实验性) | Qwen Code Docs CLI形式:qwen --experimen…

长沙Top10研究生留学机构推荐:收费透明,服务优质 - 留学机构评审官

长沙Top10研究生留学机构推荐:收费透明,服务优质一、 如何筛选值得信赖的长沙研究生留学中介?在长沙寻求研究生留学服务的学生与家长,常常面临几个核心关切:如何确保中介费用的透明度,避免后续隐形消费?服务流程…

Kdenlive v25.12.1:免费开源多轨道视频剪辑工具

Kdenlive v25.12.1 是一款基于 Qt、KDE 及 MLT 框架构建的免费开源专业视频剪辑工具,集成 FFmpeg 开源工具,支持多轨道编辑、全格式兼容等核心功能,无论是基础剪辑需求还是专业创作场景,都能为用户提供流畅且强大的视频编辑体验。…

B站m4s视频快速转换完整教程:轻松突破播放限制

B站m4s视频快速转换完整教程:轻松突破播放限制 【免费下载链接】m4s-converter 将bilibili缓存的m4s转成mp4(读PC端缓存目录) 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 还在为B站缓存视频无法在其他设备播放而烦恼吗?那些精心…

福州Top10研究生留学机构,高录取率如何助力留学申请成功? - 留学机构评审官

福州Top10研究生留学机构,高录取率如何助力留学申请成功?我是一名从业八年的国际教育规划师,日常工作便是为不同背景的学生剖析留学申请的底层逻辑,并协助他们筛选合适的支持资源。在福州,许多意向深造的研究生申…

Taro跨端开发:从“多端适配焦虑“到“一次编写,处处运行“的蜕变之旅

Taro跨端开发:从"多端适配焦虑"到"一次编写,处处运行"的蜕变之旅 【免费下载链接】taro 开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等…

Emu3.5-Image:10万亿数据驱动的免费AI绘图黑科技!

Emu3.5-Image:10万亿数据驱动的免费AI绘图黑科技! 【免费下载链接】Emu3.5-Image 项目地址: https://ai.gitcode.com/BAAI/Emu3.5-Image 导语:BAAI(北京人工智能研究院)最新发布的Emu3.5-Image模型&#xff0c…

WarcraftHelper完整使用教程:让魔兽争霸III焕发新生

WarcraftHelper完整使用教程:让魔兽争霸III焕发新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔兽争霸III》在现代电脑上运…

合肥top10硕士留学机构,无隐形消费,助您成功实现留学目标 - 留学机构评审官

合肥top10硕士留学机构,无隐形消费,助您成功实现留学目标一、如何在合肥选择透明高效的硕士留学服务机构?作为一名从业近八年的国际教育规划师,我接触过许多来自合肥地区高校、怀揣硕士留学梦想的学生。在咨询过程…

终极Windows安卓子系统WSABuilds完整安装指南

终极Windows安卓子系统WSABuilds完整安装指南 【免费下载链接】WSABuilds Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions) built in. …

计算机专业大学四年的学习路线(非常详细),零基础入门到精通,看这一篇就够了

前言 许多学子选择踏上计算机这条充满挑战与机遇的道路。但在大学四年中,如何规划自己的学习路线,才能在毕业时脱颖而出,成为行业的佼佼者呢? 第一学年:基础知识的奠基 1.1 课程安排 在大学的第一年,重…

AI证件照系统源码,自动调整至标准证件照格式

温馨提示:文末有资源获取方式极速AI人脸识别技术:系统集成智能证件照大模型,能在上传日常照片后1秒内完成人脸检测和裁剪,自动调整至标准证件照格式。这项技术不仅提升了制作速度,还保证了照片质量,避免了传…

收藏必学!大模型检索-推理系统全解析:从RAG到协同框架,解决知识幻觉与推理不足的终极指南

文章系统综述了大语言模型中的检索-推理系统,分为三类:推理增强型RAG、RAG增强型推理和协同检索-推理框架。详细分析了各类技术的实现方法,包括检索优化、整合优化、生成优化等,并讨论了当前面临的效率、可信度等挑战及未来发展方…

泉州硕士留学机构如何选择?top10稳定可靠服务助您留学成功 - 留学机构评审官

泉州硕士留学机构如何选择?top10稳定可靠服务助您留学成功一、泉州硕士留学机构如何选择?几个关键点助您高效决策撰写本文时,时间是2026年1月10日。近期,在与泉州地区高校学生的交流中,我,一名拥有八年闽南地区留…

【Golang 】协程(Goroutine)与调度器深度技术解析

文章目录目录一、Goroutine 核心解析:轻量级的用户态执行单元1. Goroutine 与进程、线程的核心差异2. Goroutine 核心特性3. 简单代码示例:创建 Goroutine二、Go 调度器核心:G-M-P 调度模型1. G-M-P 三大核心组件定义(1&#xff0…

AI证件照系统源码,自助建站,抢占在线证件照市场

温馨提示:文末有资源获取方式深度学习驱动的AI核心引擎:系统搭载智能证件照生成模型,采用深度学习算法精准定位人脸五官,自动完成背景分割、姿态矫正与光线优化。用户上传生活照后,系统能在1秒内输出专业级证件照&…

从产品小白到AI专家:传统与AI产品经理的六大差异对比,收藏学习不迷路!

在AI技术如潮水般席卷各行各业的今天,产品经理这个岗位正迎来一场深刻的身份分化。 一边是深耕移动互联网时代的“传统产品经理”,另一边则是踩着AI浪潮崛起的“AI产品经理”。 两者都怀揣着用产品创造价值的初心,但在服务对象、能力素养、工…