码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Boot中@Async的作用

时间:2019-08-08 17:29:41      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:capacity   程序   for   parse   aci   tap   自己   业务   prope   

        在Spring中,@Async这个注解用于标记的异步的方法。方法上一旦标记了这个方法,当其它线程调用这个方法时,就会开启一个新的线程去异步处理业务逻辑。

 此注解的使用说明:

       1、此注解可以用在方法上,也可以用在类上(如果用在类上,这个类中的所有的方法就是异步的)

       2、使用此注解的方法的类对象,需要是spring管理下的bean对象

       3、程序主类或此注解的主类上,需要开启启用异步配置,配置上@EnableAsync注解

 

    以Spring boot 为例,启动类中增加@EnableAsync

@EnableAsync
@SpringBootApplication
public class ManageApplication {

}

异步类:

@Component
public class MyAsyncTask {
@Async
public void asyncCpsItemImportTask(Long platformId, String jsonList){}
}

上面的配置会启用默认的执行器,异步执行指定的方法。

在业务场景中,有时需要使用自己定义的执行器来跑异步的业务逻辑,那该怎么办呢?

上面的改造后的代码如下:

@EnableAsync
@SpringBootApplication
public class ManageApplication {

 

@Bean("MyExecutor")
public TaskExecutor workExecutor1(){
ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
threadPoolTaskExecutor.setThreadNamePrefix("parseMyTask");
threadPoolTaskExecutor.setCorePoolSize(10);
threadPoolTaskExecutor.setMaxPoolSize(30);
threadPoolTaskExecutor.setQueueCapacity(100);
threadPoolTaskExecutor.afterPropertiesSet();
return threadPoolTaskExecutor;
}

 

}

异步类:

@Component
public class MyAsyncTask {
@Async("MyExecutor")
public void asyncCpsItemImportTask(Long platformId, String jsonList){}
}

 

Spring Boot中@Async的作用

标签:capacity   程序   for   parse   aci   tap   自己   业务   prope   

原文地址:https://www.cnblogs.com/xuzhujack/p/11322439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!