在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。
调用当前类中的异步方法,异步方法不生效。
@Override
public void downTensionData(Integer bfid, String beamcodes, String key) {
try{
String token = tensionAuthService.getToken(bfid);
if(token!=null && !"".equals(token.trim())) {
Map<String, Object> authUser = tensionAuthService.getAuthUser(bfid);
downloadTensionCommon(token,String.valueOf(authUser.get("account")),bfid, beamcodes);
}
}catch (Exception e){
log.error(e.getMessage());
}finally {
redisUtil.delete(key);
}
}
@Async
private void downloadTensionCommon(String token,String account,Integer bfid, String productBeamNames) {
List<Map<String, Object>> commonsTension = new ArrayList<Map<String, Object>>();
if (token != null && !"".equals(token.trim())) {
List<Map<String, Object>> beamFaceId = getBeamFaceId(bfid, account, productBeamNames, token);
}
}
异步方法生效
@Autowired
private ITensionDownLoadApi tensionDownService;
@Override
public void downTensionData(Integer bfid, String beamcodes, String key) {
try{
String token = tensionAuthService.getToken(bfid);
if(token!=null && !"".equals(token.trim())) {
Map<String, Object> authUser = tensionAuthService.getAuthUser(bfid);
tensionDownService.downloadTensionCommon(token,String.valueOf(authUser.get("account")),bfid, beamcodes);
}
}catch (Exception e){
log.error(e.getMessage());
}finally {
redisUtil.delete(key);
}
}
public interface ITensionDownLoadApi {
/**
* @Title: downloadTensionCommon
* @Description: 下载张拉公共数据
* @param: bfid 梁场ID
* @param: productBeamNames 梁体编码
* @return: void
* @throws
*/
@Async
void downloadTensionCommon(String token,String account,Integer bfid,String productBeamNames);
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。