SpringBoot之异步调用@Async

场景:微信公众号授权页面,公众号所有者扫码授权时,拉取公众号下的粉丝信息,完成后跳转至授权成功页面。

问题:当粉丝数量很大的时候,拉取用户信息(包括网络请求)耗时很长,授权页面会因为请求超时挂掉。(很多耗时操作都要考虑到用户体验,先返回授权成功页面,耗时操作在异步执行)

解决方法:异步执行耗时的拉取用户信息操作。SpringBoot中直接可以@Async注解实现异步调用。

@Controller
@RequestMapping("/open/auth")
public class AuthCallbackController extends SuperController {	

    @RequestMapping("/callbacktest")
    public String callback()throws Exception{
        new CoreTask().task1();
        new CoreTask().task2();
        new CoreTask().task3();
        return "auth/authSuccess";
    }
    
}

CoreTask类,执行测试的三个方法上加上注解@Async:

@Component
public class CoreTask {
	@Async
    public void task1()throws Exception{
        Thread.sleep(1000);
        System.out.println("我是任务1");
    }
    @Async
    public void task2()throws Except
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值