SpringBoot使用@Async异步调用方法

Myth丶恋晨 2023-02-28 12:59 376阅读 0赞

有时间一些比较耗时的方法需要使用异步调用,之前会自己维护一个线程池,然后异步调用,但是在Spring环境下可以一个@Async轻松搞定。

SpringBoot要使用@Async需要以下两个步骤:

1.使用@EnableAsync开启异步;

2.定义Spring组件,使用@Component和@Async;

示例:

70

使用@EnableAsync开启异步:

定义Spring组件,使用@Component和@Async:

70 1

测试用的Controller:

70 2

启动项目,执行结果:

70 3

异步方法执行成功,可以看到有个日志打印出来了,这个是Spring打印的日志,因为我们没有指定异步执行的executor,在第一次执行的时候会找不到executor,会返回null,由Spring默认的executor去执行,这个以后有时间再记录。

其实异步注解代理的方法可以有一个返回值Future,可以用isCancelled判断异步任务是否取消,isDone判断任务是否执行结束,get获取返回结果。

发表评论

表情:
评论列表 (有 0 条评论,376人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SpringBoot使用@Async异步调用方法

    1、业务场景,在使用阿里大鱼发送短信时,不知因何原因,后端接口发送短信较耗时,前端请求后端接口很快出现请求错误,这跟前端设置的响应时间相关,可以让前端增加时间,但这并不是一个好