spring boot使用异步编程,springbootasync优先级
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
一、 OOM错误
程序报错:OutOfMemoryError:unable to create new native thread
原因:
springboot-2.1.02. 1.0) 默认不适用于线索库,因为每次援引加速器,线索库就会产生新的线索。
Springboot@AsyncOOM的坑和源码分辨率。
解决:配置线程池
第一次@ configifation
Springbot-2. 1 是版本小于 0 的默认版本 。SimpleAsyncTaskExecutor这不是一个线性球池。 有一个 OOM 问题, 必须通过自定义的线性球池手动解决 。
方案一 Bean的定制线泳池不自定义异常处理
方案二:实现AsyncConfigurer在界面中重写 GetAssyncExculator () 和 GetAsyncUncaght DevisionHandler () 方法 。
一、二. yml方法(春灯-2).Version 0及以上,包括2.O.
SpringBoot-2. one. Verion 0 及以上允许使用默认自动组装的线索库,尽管默认参数不切实际,需要根据自身的服务器设置和业务需要,通过 yml 合理设定线索库参数。 官方工作交流和日程安排网络
Tips:如果需要隐喻异常处理器, 则无法使用默认的线索库。 引用文件机制 :备选方案二是实施Async Confuler接口。这是通过界定线索库来实现的。
二、异步失效
@Async在没有采取步骤的情况下,插入了说明。类或者方法这一类中的每一方法都是朝着正确方向迈出的一步。
如下表所示,注意到该步骤未生效的现场:不论该呼叫是本地电话还是同一类别中的跨类电话,同步化需要非同步技术,没有阶段生效,所有工作同步进行。
同类本地调用 | 异步1 | 异步2 | 是/否 | 第1步目前生效,第2步线用于执行第1步,第2步线保持不变。 |
同类本地调用 | 异步1 | 同步2 | 是 | 步骤1现已生效,同步1已经用天体步骤1线修改和完成。 |
同类本地调用 | 同步1 | 异步2 | 否 | 采用了一种主要的同步技术,使用主线调用并执行非同步 2。 |
跨类调用 | 异步1 | 异步2 | 是/是 | 步骤1已经生效,步骤2已经生效,步骤1和2分别使用不同的线条。 |
跨类调用 | 异步1 | 同步2 | 是 | 第1步现已启动,第1步正以1号天体线同步进行。 |
跨类调用 | 同步1 | 异步2 | 是 | 同步1条主行执行, 星际泳池执行天体2 |
测试代码可在吉特找到,地址可在文章结尾处找到。
三. 无法获得不对称方法回报的价值。
1. 直接返回:没有获得返回值。
结果
2、直接返回基本类型,报错AopInvocationExceptionAOP 不允许基本类型返回 。
结果
3、返回Future包装的类型AsyncResult<String>,通过future.get()通常可以获取检索值。
结果
Tips:@Async动态代理改进了底层。 可调用是原始逻辑。 使用可完成的未来来实施它 。AsyncResult对CompletableFuture返回结果进行了封装
四、异步异常处理
重写org.springframework.scheduling.annotation.AsyncConfigurer#getAsyncUncaughtExceptionHandler
测试方法
单元测试
结果
五、代码
https://gitee.com/qbhj/java-cases/tree/master/case-springboot-async 如果你弄错了,你可以留个其他场景没有覆盖的留言 继续写稿子!谢谢!
XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com