首页 > 其他分享 >SpringBoot用@Async实现异步调用

SpringBoot用@Async实现异步调用

时间:2023-06-25 17:13:26浏览次数:35  
标签:异步 调用 SpringBoot 线程 注解 Async 方法

@Async 的使用

1、在启动类中加上注解@EnableAsync启用异步

 2、在使用异步的方法上加上注解@Async,自己写一个线程池,指定线程池。不建议使用默认的线程池。

    在线程池应用中,参考阿里巴巴java开发规范:线程池不允许使用Executors去创建,不允许使用系统默认的线程池, 推荐通过ThreadPoolExecutor的方式,这样的处理方式让开发的工程师更加明确线程池的运行规则,规避资源耗尽的风险         我这个功能的业务逻辑是:配送派工完成后给顾客发送微信公众号消息,提醒顾客货物开始配送了     于是在派工完成业务逻辑完成后调用推送消息的方法,是无返回值的调用

 

 

  方法上加注解

 

  在启动类上写自己的线程池

 

测试是异步调用成了

3、注意事项

  • 异步方法不能与异步方法在同一个类中
  • 如果使用SpringBoot框架必须在启动类中增加@EnableAsync注解
  • 在Async 方法上标注@Transactional是没用的。 在Async 方法调用的方法上标注@Transactional 有效。
  • 类或者方法中使用@Async注解,类上标有该注解表示类中方法都是异步方法,方法上标有该注解表示方法是异步方法
  • 注解的方法必须是public方法,不能是static

 

参考文章:

https://blog.csdn.net/houxian1103/article/details/110299410

https://blog.csdn.net/qq_44695727/article/details/120082934

 

 

 

 

 

 

标签:异步,调用,SpringBoot,线程,注解,Async,方法
From: https://www.cnblogs.com/maoyvwang/p/17503362.html

相关文章

  • springboot~stateless4j实现状态机
    状态机,包括了状态和动作,某个状态下,只能执行某些动作,如果动作不匹配,状态是不会进行变更了,这样就保护了我们状态字段的准备性,不能随意改变,必须按着我们设计的规则进行状态的轮转。Stateless实现的状态机Stateless:Stateless是一个简单且易于使用的状态机库,它提供了基本的状态转换......
  • springboot里的@ConfigurationProperties注解介绍
    在SpringBoot中,@ConfigurationProperties注解用于将外部配置文件中的属性值绑定到Java类的字段或属性上。通过使用该注解,可以方便地将一组配置属性统一绑定到一个POJO类中,然后在应用程序中使用。以下是@ConfigurationProperties注解的主要特点和使用方式:绑......
  • springboot里的@PropertySource注解介绍
    在SpringBoot中,@PropertySource注解用于加载外部的属性源文件,将其作为配置文件来使用。该注解可以用于标记在Java类上,并指定要加载的属性源文件的位置。使用@PropertySource注解可以很方便地将外部的属性文件加载到Spring的环境中,并可以通过@Value注解或Environ......
  • Python的异步
    SimpleDemo错误示范code:importasyncioasyncdeftest(id):print(id,"开始执行")awaitasyncio.sleep(5)print(id,"执行结束")asyncio.run(test(1))asyncio.run(test(2))output:1开始执行1执行结束2开始执行2执行结束这样是不支持异步的,原......
  • C#异步方法中Task.WhenAll的使用
    一、说明Task.WhenAll()、Task.WhenAny()这两个与Task.WaitALL()、Task.WaitAny()是有区别的,When是异步的,Wait是同步的。Task.WhenAll():所有task完成时,task才完成,用于等待多个任务执行结束。Task.WhenAny():任何一个task完成时,task完成。二、示例:usingSystem;usingSystem.IO......
  • 【转】SpringBoot 线上服务假死,CPU 内存正常
    文章来源:blog.csdn.net/zhangcongyi420/article/details/1311395991、背景开发小伙伴都知道线上服务挂掉,基本都是因为cpu或者内存不足,出现GC频繁OOM之类的情况。本篇文章区别以上的情况给小伙伴们带来不一样的服务挂掉。 2、问题排查老规矩在集群环境中同一个服务......
  • 11.springboot 原理 ( 起步依赖-自动配置)
    springboot原理springframeworkspringboot(配置起步依赖-自动配置)spring-boot-starter-web起步依赖(其他依赖自动传递)自动配置原理:自动将内置类存入IOC容器中,不用收到配置,只能扫描包内即子包的类,可以指定扫描的包内容:@ComponentScan("com.alex","com.ite");@Import导......
  • Apollo2.1.0+Springboot使用OpenApI
    依赖管理<!--bootstrap最高级启动配置读取--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId><version>3.1.3</v......
  • springboot使用Websocket写一个聊天室
     1<!--websocket依赖-->2<dependency>3<groupId>org.springframework.boot</groupId>4<artifactId>spring-boot-starter-websocket</artifactId>5</dependency>目录 ......
  • 基于springboot+vue的漫画之家管理系统,附源码+数据库+论文+PPT,适合课程设计、毕业设计
    1、项目介绍随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,“漫画之家”系统就是信息时代变革中的产物之一。任何系统都要遵循系统设计......