@Async 注解不生效

问题参考:https://www.cnblogs.com/timeout/p/10477561.html

写法参考:http://blog.didispace.com/springbootasync/

配置参考:https://blog.csdn.net/qq_39385706/article/details/79365849

有几个限制:

1.两个方法都在同一个类里面,只是一个方法调用另一个异步方法,不生效。

解决方法:拆分两个方法,将异步方法单独放在一个类里面,然后再去调用就解决了。

2.有接口方法的实现类里的注解不生效,例子:

一个@Controller类:HistroyDefectsController

一个接口:IRecordDefectsService

一个接口的实现@Service类:RecordDefectsServiceImpl

一个其中的同步方法为:longtimerds()

HistroyDefectsController中的实例化为

@Autowired
private IRecordDefectsService recordDefectsService;

调用的时候为:

recordDefectsService.longtimerds();

那么这个异步没有效果。

解决方法:在实现类中调用一个没有接口的类才可以。

3.我的最终的配置方法:

@Configuration
@EnableAsync
public class SpringAsyncConfig implements AsyncConfigurer {
@Override
public Executor getAsyncExecutor() {
    //线程池
    ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
    taskExecutor.setCorePoolSize(5);//核心线程数
    taskExecutor.setMaxPoolSize(10);//最大线程数
    taskExecutor.setQueueCapacity(25);//队列大小
    taskExecutor.initialize();//初始化
    return taskExecutor;
}
}
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值