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

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

被折叠的 条评论
为什么被折叠?



