1.文件下载调整;
2.bug调整
This commit is contained in:
@@ -46,7 +46,7 @@ public class AskDeviceDataClientFallbackFactory implements FallbackFactory<AskDe
|
||||
public HttpResult<Boolean> downloadFile(String nDid, String name, Integer size, String fileCheck) {
|
||||
log.error("{}异常,降级处理,异常为:{}","文件下载",cause.toString());
|
||||
redisUtil.delete("fileDowning:" + nDid);
|
||||
redisUtil.delete("fileCheck"+name);
|
||||
redisUtil.delete("fileCheck"+nDid+name);
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
|
||||
@@ -88,30 +88,29 @@ public class AskDeviceDataServiceImpl implements AskDeviceDataService {
|
||||
public boolean downloadFile(String nDid, String name, Integer size, String fileCheck) {
|
||||
boolean result = false;
|
||||
try {
|
||||
redisUtil.saveByKeyWithExpire("fileDowning:"+nDid,"fileDowning",600L);
|
||||
redisUtil.saveByKeyWithExpire("fileCheck"+name,fileCheck,600L);
|
||||
redisUtil.saveByKeyWithExpire("fileDowning:"+nDid,"fileDowning",120L);
|
||||
redisUtil.saveByKeyWithExpire("fileCheck"+nDid+name,fileCheck,120L);
|
||||
Object object = getDeviceMid(nDid);
|
||||
if (!Objects.isNull(object)) {
|
||||
mid = (Integer) object;
|
||||
}
|
||||
ReqAndResDto.Req reqAndResParam = getAllPojo(mid,name);
|
||||
publisher.send("/Pfm/DevFileCmd/V1/"+nDid,new Gson().toJson(reqAndResParam),1,false);
|
||||
//这里使用简单的轮询,但建议考虑更高效的机制
|
||||
for (int i = 0; i < 12; i++) {
|
||||
Thread.sleep(10000);
|
||||
Object object2 = redisUtil.getObjectByKey("downloadFilePath:"+name);
|
||||
if (!Objects.isNull(object2)) {
|
||||
result = true;
|
||||
break;
|
||||
} else {
|
||||
Object object3 = redisUtil.getObjectByKey(AppRedisKey.FILE_PART.concat(name));
|
||||
if (!Objects.isNull(object3)) {
|
||||
FileStreamDto dto = JSON.parseObject(JSON.toJSONString(object3), FileStreamDto.class);
|
||||
String json = "{fileName:"+name+",allStep:"+dto.getTotal()+",nowStep:"+ (CollectionUtil.isEmpty(dto.getList())?0:dto.getList().size())+"}";
|
||||
publisher.send("/Web/Progress/" + nDid, new Gson().toJson(json), 1, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
// //这里使用简单的轮询,但建议考虑更高效的机制
|
||||
// for (int i = 0; i < 60; i++) {
|
||||
// Thread.sleep(5000);
|
||||
// Object object3 = redisUtil.getObjectByKey(AppRedisKey.FILE_PART.concat(name));
|
||||
// FileStreamDto dto = JSON.parseObject(JSON.toJSONString(object3), FileStreamDto.class);
|
||||
// if (dto.getList().size() == dto.getTotal()) {
|
||||
// result = true;
|
||||
// String json = "{fileName:"+name+",allStep:"+dto.getTotal()+",nowStep:"+ dto.getTotal() +"}";
|
||||
// publisher.send("/Web/Progress/" + nDid, new Gson().toJson(json), 1, false);
|
||||
// break;
|
||||
// } else {
|
||||
// String json = "{fileName:"+name+",allStep:"+dto.getTotal()+",nowStep:"+ (CollectionUtil.isEmpty(dto.getList())?0:dto.getList().size())+"}";
|
||||
// publisher.send("/Web/Progress/" + nDid, new Gson().toJson(json), 1, false);
|
||||
// }
|
||||
// }
|
||||
mid = mid + 1;
|
||||
if (mid > 10000) {
|
||||
mid = 1;
|
||||
@@ -119,7 +118,7 @@ public class AskDeviceDataServiceImpl implements AskDeviceDataService {
|
||||
redisUtil.saveByKey(AppRedisKey.DEVICE_MID + nDid,mid);
|
||||
} catch (Exception e) {
|
||||
redisUtil.delete("fileDowning:"+nDid);
|
||||
redisUtil.delete("fileCheck"+name);
|
||||
redisUtil.delete("fileCheck"+nDid+name);
|
||||
throw new BusinessException(AlgorithmResponseEnum.FILE_DOWNLOAD_ERROR);
|
||||
}
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user