springboot中使用@Async实现异步方法调用

文章介绍了在开发中如何处理耗时操作,以提高用户体验。当业务A包含a、b、c、d四个小业务,而c业务执行时间长或涉及外部API调用时,可以采用异步处理。提到了两种解决方案,一是使用消息中间件如RabbitMQ、ActiveMQ、Kafka,二是利用SpringBoot的@Async注解。在SpringBoot项目中,通过@Async注解实现异步方法,使a、c、d业务先执行完,不等待c完成即可提示用户,提高了响应速度。文章还给出了创建SpringBoot工程、启用异步任务、创建服务类和控制器的步骤,并提供了源码下载链接。

1、场景描述

我们在开发的过程中,可能会遇见如下场景:

一个业务A,这个A业务中包含了4个小业务,分别是a,b,c,d。在实际操作中,有时候第三个业务c,执行的时间比较长或者c业务是属于其他系统的api调用。这个时候,我们就期望a,c,d三个也是先执行完毕,然后提示用户业务成功。而不必等待c业务结束后,在提示用户。这样的好处是,能够实现业务分离,且用户体验较好。

常见的应用场景:如短信方法,订单提交,邮件发送,消息推送等。

常见的解决办法:

    第一种:可以通过RabbitMQ\ActiveMQ\KAFKA等消息中间件实现

    第二种:可以通过@Async注解实现

总结:

      如果调用的服务涉及到其他系统建议使用消息中间件

      如果调用的服务都在一个工程中,建议使用@Async注解,足够使用。

@Async使用注意点

    1、被@Async修饰的方法,需要单独写在一个独立的类中,不能与当前业务在同一个类中。

    2、使用的时候需要再启动类中启动异步任务,@EnableAsync

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾林小妖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值