1.移植程序软件接口;

2.返回文件上传、下载进度信息
This commit is contained in:
xy
2024-09-19 14:26:29 +08:00
parent 32520907d2
commit b59c85e791
11 changed files with 57 additions and 233 deletions

View File

@@ -138,7 +138,7 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
ReqAndResDto.Req reqAndResParam = getPojo(mid,name,i);
publisher.send("/Pfm/DevFileCmd/V1/"+nDid,new Gson().toJson(reqAndResParam),1,false);
//判断是否重发
sendNextStep(name,nDid,mid,i);
webSendNextStep(name,nDid,mid,i);
FileRedisDto fileRedisDto = (FileRedisDto) redisUtil.getObjectByKey(AppRedisKey.DOWNLOAD + name + mid);
//重发之后判断继续循环还是跳出循环
if (!Objects.isNull(fileRedisDto) && !Objects.equals(fileRedisDto.getCode(),200)) {
@@ -200,6 +200,41 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
return reqAndResParam;
}
/**
* web端根据装置响应来判断是否询问下一帧数据
*/
public void webSendNextStep(String fileName, String id, int mid,int step) {
try {
for (int i = 1; i <= 30; i++) {
if (step == 0 ){
Thread.sleep(5000);
} else {
Thread.sleep(2000);
}
FileRedisDto fileRedisDto = (FileRedisDto) redisUtil.getObjectByKey(AppRedisKey.DOWNLOAD + fileName + mid);
if (Objects.isNull(fileRedisDto)) {
FileRedisDto failDto = new FileRedisDto();
failDto.setCode(400);
redisUtil.saveByKeyWithExpire(AppRedisKey.DOWNLOAD + fileName + mid,failDto,10L);
} else {
if (Objects.equals(fileRedisDto.getCode(),200)) {
break;
} else {
log.info("" +i+"次尝试");
//尝试失败则设置code为400如果装置响应了则会将code置为200
FileRedisDto failDto = new FileRedisDto();
failDto.setCode(400);
redisUtil.saveByKeyWithExpire(AppRedisKey.DOWNLOAD + fileName + mid,failDto,10L);
ReqAndResDto.Req req = getPojo(mid,fileName,step);
publisher.send("/Pfm/DevFileCmd/V1/" + id, new Gson().toJson(req), 1, false);
}
}
}
} catch (Exception e) {
throw new BusinessException(AlgorithmResponseEnum.FILE_DOWNLOAD_ERROR);
}
}
/**
* 根据装置响应来判断是否询问下一帧数据
*/