@Async 使用和失效情况

本文介绍了在Spring Boot中如何使用@Async进行异步任务处理,包括启动异步服务、定义异步方法、自定义线程池等,并探讨了@Async失效的几种情况,如未开启异步服务、内部调用、方法权限及非代理对象调用等问题。
摘要由CSDN通过智能技术生成

@Async 使用和失效情况

因业务需要,经常会遇到主线程中包含其他关联业务,然关联业务的执行结果对主线程的返回结果没有直接影响或无影响。此时,能让主线程更顺畅的执行,并给客户带来好的客户体验,我们一般会将该关联业务做异步处理或类似的处理(如:消息队列),本文记录自己在项目中使用异步服务的相关经历,以备后期查询使用!

一、Springboot 使用异步任务

1、SpringBootApplication启动类添加@EnableAsync注解;

2、@Async使用

(1)类或者方法中使用@Async注解,类上标有该注解表示类中方法都是异步方法,方法上标有该注解表示方法是异步方法;

(2)@Async(“threadPool”),threadPool为自定义线程池,这样可以保证主线程中调用多个异步任务时能更高效的执行。

3、实例、分析

开启异步服务

@SpringBootApplication
@EnableApolloConfig
@EnableAsync
@ComponentScan(basePackages = {"com.zts"})
public class UserMgmtApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserMgmtApplication.class, args);
    }
}

定义异步类或方法:如果异步方法需要返回值,可以用Future接收


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值