@Async 异步不起作用
一、异步接口实现
java中的异步接口实现比较简单,主要有两步:
- 1、在ContentServiceApplication上添加@EnableAsync。
- 2、在需要异步的接口上添加@Async接口。
// 第一步@EnableAsync
public class ContentServiceApplication {public static void main(String[] args) {SpringApplication.run(ContentServiceApplication.class, args);}}// 第二步@Async@Overridepublic void threadInfoAsync() throws InterruptedException {log.info("开始执行定时任务");HashSet<String> authorList = threadService.syncThreadEffectInfoToMongo();log.info("需要同步的作者列表 size = " + authorList.size());contentAuthorService.syncAuthorEffectInfoToMongo(authorList);}
二、@Async 异步不起作用
按照上面的步骤配置后就可以实现异步接口。
但有一种情况例外:@Async所修饰的接口和调用这个接口的function在同一个类
中,此时异步不起作用
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import static java.lang.Thread.sleep;@RestController
@RequestMapping("/test")
@Slf4j
public class testAsync {@RequestMapping("/test")String getFunctionInfo(@RequestBody String str) throws InterruptedException {log.info("接受到请求");printAsyncInfo();log.info("返回请求");return "success";}@Asyncvoid printAsyncInfo() throws InterruptedException {for(int i = 0; i < 10; i++){log.info("接口异步响应中: i = " + i);sleep(1000);}}
}
上面代码@Async 异步功能并没有起到作用。执行结果如下:
@Async 异步不起作用相关推荐
- 使用@Async异步注解导致该Bean在循环依赖时启动报BeanCurrentlyInCreationException异常的根本原因分析,以及提供解决方案
前言 今天在自己工程中使用@Async的时候,碰到了一个问题:Spring循环依赖(circular reference)问题. 或许刚说到这,有的小伙伴就会大惊失色了.Spring不是解决了循环依赖 ...
- ajax 执行成功 modal 关闭_Ajax请求中的async:false/true的作用
前言: 昨天在做倒计时修改的时候,发现多次点击按钮,我明明做了限制,点击多次的时候发现怎么都会请求了两次,然后我写的是请求成功添加文字,结果总是会添加两次文字, 说明ajax请求了两次了,在网上查了下 ...
- C#-深入理解async和await的作用及各种适用场景和用法
第十五节:深入理解async和await的作用及各种适用场景和用法 一. 同步VS异步 1. 同步 VS 异步 VS 多线程 同步方法:调用时需要等待返回结果,才可以继续往下执行业务 异步方法:调 ...
- async 异步编程的应用
async 异步编程的应用 1.为了解决node.js在实际项目中的异步特性,跳出回调大坑. 2.优雅的维护自己的代码. 3.更好的对自己的代码进行流程控制. async.waterfall 1.as ...
- 笨笨图片批量抓取下载 V0.2 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程]...
一. 先贴一张图,这个界面就是程序的主界面了: 二. 部分代码说明(主要讲解异步分析和下载): 异步分析下载采取的策略是同时分析同时下载,即未等待数据全部分析完毕就开始把已经分析出来的 ...
- js:nodejs通过async异步提交事务数据
一,async异步编程 1,异步编程是指由于异步I/O等因素,无法同步获得执行结果时, 在回调函数中进行下一步操作的代码编写风格,常见的如setTimeout函数.ajax请求等等 waterfall ...
- ajax异步详解同步请求,ajax async异步请求和同步请求
ajax async异步请求和同步请求 ajax是指异步加载.这个异步是相对于页面来说的,页面不刷新就加载服务器数据.ajax中的请求又分为同步请求和异步请求,这里是相对于进程来说的,ajax异步请求 ...
- nodejs之async异步编程
2019独角兽企业重金招聘Python工程师标准>>> 1.什么是异步编程? 异步编程是指由于异步I/O等因素,无法同步获得执行结果时, 在回调函数中进行下一步操作的代码编写风格,常 ...
- Spring Boot系列二 Spring @Async异步线程池用法总结
转载 自 https://blog.csdn.net/hry2015/article/details/67640534 1. TaskExecutor Spring异步线程池的接口类,其实质是java ...
- 第十五节:深入理解async和await的作用及各种适用场景和用法
一. 同步VS异步 1. 同步 VS 异步 VS 多线程 同步方法:调用时需要等待返回结果,才可以继续往下执行业务 异步方法:调用时无须等待返回结果,可以继续往下执行业务 开启新线程:在主线程之外 ...
最新文章
- gis 数据框裁剪_BIM+GIS的八大挑战!大挑战,见未来
- java编写词法分析器
- JQuery实现树的功能doc
- Ubuntu 16.04安装 sogou 遗留下的问题
- 曾鸣:未来十年,将确定智能商业的格局|干货
- 数位dp总结 之 从入门到模板(stO)
- 283. 移动零golang
- 在线进行 PCoA 分析和相关统计检验
- [docker][win10]安装的坑
- 苹果发布会全汇总:最贵59999元 Mac Studio性能史上最强!iPad Air 最没诚意...
- SqlServer标识列
- 【渝粤教育】国家开放大学2018年春季 0248-22T电工电子技术 参考试题
- 西华师范大学计算机专业保研资格,西华师范大学计算机学院 计算机应用技术保研条件...
- 【Visual C++】游戏开发笔记二十六 DirectX 11各组件的介绍第一个DirectX 11 Demo的创建
- 单片机 STM32 HAL IO扩展 74HC595 例子代码
- stm32+ucos,si4438调试
- 怎么下载b站的弹幕(danmuku)
- fastreport一些技巧
- php返回值乱码,php中文返回乱码怎么办
- 沧小海读《图解TCP/IP》笔记——第六章 TCP与UDP