装置定时请求接入优化

This commit is contained in:
2023-11-07 09:07:46 +08:00
parent 61497eb049
commit bb2400b747
2 changed files with 16 additions and 1 deletions

View File

@@ -75,6 +75,7 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
//判断失效的key是否为MQTT消费端存入的
String expiredKey = message.toString();
if(expiredKey.startsWith("MQTT:")){
String nDid = expiredKey.split(":")[1];
//装置下线
csEquipmentDeliveryService.updateRunStatusBynDid(nDid, AccessEnum.OFFLINE.getCode());
@@ -94,13 +95,16 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
Thread.sleep(1000);
Integer status = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
if (!Objects.isNull(status) && Objects.equals(status,AccessEnum.OFFLINE.getCode())){
final int[] mid = {2};
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(2);
ScheduledFuture<?> runnableFuture = executor.scheduleAtFixedRate(() -> {
log.info("定时发送接入请求...");
csDeviceService.devAccess(nDid, version);
csDeviceService.devAccessMid(nDid,version, mid[0]);
Integer status2 = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
if (Objects.equals(status2,AccessEnum.ONLINE.getCode())){
throw new BusinessException(CommonResponseEnum.SUCCESS);
} else {
mid[0] = mid[0] + 1;
}
//记录日志
logDto.setOperate("装置掉线,定时发送接入请求,装置为:" + nDid + ",请求的时间戳为:" + System.currentTimeMillis());

View File

@@ -367,6 +367,17 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(reqAndResParam),1,false);
}
public void devAccessMid(String nDid,String version,Integer mid) {
ReqAndResDto.Req reqAndResParam = new ReqAndResDto.Req();
reqAndResParam.setMid(mid);
reqAndResParam.setDid(0);
reqAndResParam.setPri(AccessEnum.FIRST_CHANNEL.getCode());
reqAndResParam.setType(Integer.parseInt(TypeEnum.TYPE_5.getCode()));
reqAndResParam.setExpire(-1);
logger.info("设备接入报文为:" + new Gson().toJson(reqAndResParam));
publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(reqAndResParam),1,false);
}
/**
* 平台对设备发起主题询问命令
*/