一、异步接口实现

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 异步不起作用相关推荐

  1. 使用@Async异步注解导致该Bean在循环依赖时启动报BeanCurrentlyInCreationException异常的根本原因分析,以及提供解决方案

    前言 今天在自己工程中使用@Async的时候,碰到了一个问题:Spring循环依赖(circular reference)问题. 或许刚说到这,有的小伙伴就会大惊失色了.Spring不是解决了循环依赖 ...

  2. ajax 执行成功 modal 关闭_Ajax请求中的async:false/true的作用

    前言: 昨天在做倒计时修改的时候,发现多次点击按钮,我明明做了限制,点击多次的时候发现怎么都会请求了两次,然后我写的是请求成功添加文字,结果总是会添加两次文字, 说明ajax请求了两次了,在网上查了下 ...

  3. C#-深入理解async和await的作用及各种适用场景和用法

    第十五节:深入理解async和await的作用及各种适用场景和用法 一. 同步VS异步 1.   同步 VS 异步 VS 多线程 同步方法:调用时需要等待返回结果,才可以继续往下执行业务 异步方法:调 ...

  4. async 异步编程的应用

    async 异步编程的应用 1.为了解决node.js在实际项目中的异步特性,跳出回调大坑. 2.优雅的维护自己的代码. 3.更好的对自己的代码进行流程控制. async.waterfall 1.as ...

  5. 笨笨图片批量抓取下载 V0.2 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程]...

    一.     先贴一张图,这个界面就是程序的主界面了: 二.     部分代码说明(主要讲解异步分析和下载): 异步分析下载采取的策略是同时分析同时下载,即未等待数据全部分析完毕就开始把已经分析出来的 ...

  6. js:nodejs通过async异步提交事务数据

    一,async异步编程 1,异步编程是指由于异步I/O等因素,无法同步获得执行结果时, 在回调函数中进行下一步操作的代码编写风格,常见的如setTimeout函数.ajax请求等等 waterfall ...

  7. ajax异步详解同步请求,ajax async异步请求和同步请求

    ajax async异步请求和同步请求 ajax是指异步加载.这个异步是相对于页面来说的,页面不刷新就加载服务器数据.ajax中的请求又分为同步请求和异步请求,这里是相对于进程来说的,ajax异步请求 ...

  8. nodejs之async异步编程

    2019独角兽企业重金招聘Python工程师标准>>> 1.什么是异步编程? 异步编程是指由于异步I/O等因素,无法同步获得执行结果时, 在回调函数中进行下一步操作的代码编写风格,常 ...

  9. Spring Boot系列二 Spring @Async异步线程池用法总结

    转载 自 https://blog.csdn.net/hry2015/article/details/67640534 1. TaskExecutor Spring异步线程池的接口类,其实质是java ...

  10. 第十五节:深入理解async和await的作用及各种适用场景和用法

    一. 同步VS异步 1.   同步 VS 异步 VS 多线程 同步方法:调用时需要等待返回结果,才可以继续往下执行业务 异步方法:调用时无须等待返回结果,可以继续往下执行业务 开启新线程:在主线程之外 ...

最新文章

  1. gis 数据框裁剪_BIM+GIS的八大挑战!大挑战,见未来
  2. java编写词法分析器
  3. JQuery实现树的功能doc
  4. Ubuntu 16.04安装 sogou 遗留下的问题
  5. 曾鸣:未来十年,将确定智能商业的格局|干货
  6. 数位dp总结 之 从入门到模板(stO)
  7. 283. 移动零golang
  8. 在线进行 PCoA 分析和相关统计检验
  9. [docker][win10]安装的坑
  10. 苹果发布会全汇总:最贵59999元 Mac Studio性能史上最强!iPad Air 最没诚意...
  11. SqlServer标识列
  12. 【渝粤教育】国家开放大学2018年春季 0248-22T电工电子技术 参考试题
  13. 西华师范大学计算机专业保研资格,西华师范大学计算机学院 计算机应用技术保研条件...
  14. 【Visual C++】游戏开发笔记二十六 DirectX 11各组件的介绍第一个DirectX 11 Demo的创建
  15. 单片机 STM32 HAL IO扩展 74HC595 例子代码
  16. stm32+ucos,si4438调试
  17. 怎么下载b站的弹幕(danmuku)
  18. fastreport一些技巧
  19. php返回值乱码,php中文返回乱码怎么办
  20. 沧小海读《图解TCP/IP》笔记——第六章 TCP与UDP

热门文章

  1. 【学习】Cognos超详细中文教程
  2. 综合实验DM***+EZ***+EigrpOSPF+路由重发布
  3. 数据结构课程设计——设计大赛赛事管理系统
  4. 网络电视盒子哪个品牌好?数码达人实测30天盘点电视盒子品牌排行榜
  5. 在线模拟解析Crontab表达式执行时间
  6. python实现双均线策略
  7. 动态修改JVM 部分参数
  8. vs2008里批量删除历史记录与.ncb、.obj等文件
  9. 如何生成二维码可扫一扫跳转到指定链接
  10. 华为Mate 60 Pro供应商曝光!