1.问题描述
在做导入导出功能时,如果数据量比较多,完成操作的时间就会变长,导致页面的接口报502超时异常
2.原因分析
没有做异步处理,同步处理会导致页面要一直等待接口响应,时间一长就会报502
3.解决方案
改为异步导入导出,在导入导出的ServiceImpl方法上加上@Async注解就可以实现异步功能
4.注意
使用@Async需要跨2个Service,否则异步不会生效
错误示例
控制器接口 > 直接调用ServiceImpl方法(在这个方法添加@Async,异步不会生效)
正确示例
控制器接口 > 调用ServiceImpl1方法 > 调用ServiceImpl2方法(在这个方法添加@Async,异步才会生效)
Java 解决异步 @Async 失效问题