【十一】springboot整合异步调用并获取返回值

简介: 【十一】springboot整合异步调用并获取返回值


       介绍:接下来我会把学习阶段学到的框架等知识点进行整合,每一次整合是在前一章的基础上进行的,所以后面的整合不会重复放前面的代码。每次的demo我放在结尾,本次是接着上一章的内容延续的,只增加新增的或者修改的代码。

       在上一章整合了线程池,并开启了线程池状态的打印查看。本章将整合异步调用并获取异步调用的返回值。

场景:一个接口里面要处理很多业务,响应很慢。可以将这些业务写成异步任务。

       ps:异步调用的方法返回值类型是Future类,Future是专门接收异步响应的类

       相比上一章,目录结构没有新增。

第一步:新建异步任务

       注意返回值是Future类,加上Async注解。

       注意开启异步监控注解,@EnableAsync//开启异步调用,可以在启动类上加,上一章的整合已经在线程池的配置类上面加了该注解,所以不需要加了。

第二步:在controller里面新建一个接口与用于测试

       从上面可以得知,若不是异步请求,该请求会花费4000。

第三步:演示

       可以看到,耗时3019,并且两个异步任务也是同时执行的,不是一个执行完了再执行的第二个。并且从Future获取值也获取到了,通过future的get方法。

       踩坑:一开始我将异步任务也写在controller里面的,结果调用接口,并没有实现异步。小白一枚,刚开始学习,不太懂,有大佬愿意在评论区点拨一番,不胜感激。

       本期整合到此完毕,接下来会继续更新加强整合,尽情期待。

       访问地址:http://localhost:8087/swagger-ui.html或者http://localhost:8087/doc.html

目录
相关文章
|
1月前
|
并行计算 Java 数据处理
SpringBoot高级并发实践:自定义线程池与@Async异步调用深度解析
SpringBoot高级并发实践:自定义线程池与@Async异步调用深度解析
150 0
|
JSON 人工智能 Java
SpringBoot实战(九):标准化json返回值
SpringBoot实战(九):标准化json返回值
118 0
|
6月前
|
Java 测试技术 Spring
Spring Boot使用@Async实现异步调用
Spring Boot使用@Async实现异步调用
53 0
|
前端开发 Java 关系型数据库
【SpringBoot】微服务学习笔记七:微服务中异步调用数据提交数据库的问题
【SpringBoot】微服务学习笔记七:微服务中异步调用数据提交数据库的问题
622 0
【SpringBoot】微服务学习笔记七:微服务中异步调用数据提交数据库的问题
|
4月前
|
文字识别 Java
文本,文字识别07,SpringBoot服务开发-入参和返回值,编写接口的时候,要注意识别的文字返回的是多行,因此必须是List集合,Bean层,及实体类的搭建
文本,文字识别07,SpringBoot服务开发-入参和返回值,编写接口的时候,要注意识别的文字返回的是多行,因此必须是List集合,Bean层,及实体类的搭建
|
6月前
|
Java Spring
SpringBoot+async异步调用接口以及几个任务同时完成和异步接口实现和调用
SpringBoot+async异步调用接口以及几个任务同时完成和异步接口实现和调用
136 0
|
6月前
|
Java Spring
使用spring boot的@Async实现异步调用和线程池复用
使用spring boot的@Async实现异步调用和线程池复用
|
Java Spring
使用spring boot的@Async实现异步调用和线程池复用
使用spring boot的@Async实现异步调用和线程池复用
868 0
使用spring boot的@Async实现异步调用和线程池复用
|
缓存 前端开发 安全
SpringBoot如何缓存方法返回值?
为什么要对方法的返回值进行缓存呢? 简单来说是为了提升后端程序的性能和提高前端程序的访问速度。减小对db和后端应用程序的压力。 一般而言,缓存的内容都是不经常变化的,或者轻微变化对于前端应用程序是可以容忍的。 否则,不建议加入缓存,因为增加缓存会使程序复杂度增加,还会出现一些其他的问题,比如缓存同步,数据一致性,更甚者,可能出现经典的缓存穿透、缓存击穿、缓存雪崩问题。
63 0
|
前端开发 Java 测试技术
SpringBoot-27- @Async实现异步调用 什么是异步调用
异步调用是相对于同步调用的,同步调用是按照顺序进行执行任务,只有上一个任务执行完成下一个任务才能执行,异步调用是指在按照顺序执行任务的过程中不需要等待任务结果的出现,就可以顺序执行下一个任务。
93 0