装置定时请求接入优化
This commit is contained in:
@@ -75,6 +75,7 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
|
|||||||
//判断失效的key是否为MQTT消费端存入的
|
//判断失效的key是否为MQTT消费端存入的
|
||||||
String expiredKey = message.toString();
|
String expiredKey = message.toString();
|
||||||
if(expiredKey.startsWith("MQTT:")){
|
if(expiredKey.startsWith("MQTT:")){
|
||||||
|
|
||||||
String nDid = expiredKey.split(":")[1];
|
String nDid = expiredKey.split(":")[1];
|
||||||
//装置下线
|
//装置下线
|
||||||
csEquipmentDeliveryService.updateRunStatusBynDid(nDid, AccessEnum.OFFLINE.getCode());
|
csEquipmentDeliveryService.updateRunStatusBynDid(nDid, AccessEnum.OFFLINE.getCode());
|
||||||
@@ -94,13 +95,16 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
|
|||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
Integer status = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
|
Integer status = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
|
||||||
if (!Objects.isNull(status) && Objects.equals(status,AccessEnum.OFFLINE.getCode())){
|
if (!Objects.isNull(status) && Objects.equals(status,AccessEnum.OFFLINE.getCode())){
|
||||||
|
final int[] mid = {2};
|
||||||
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(2);
|
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(2);
|
||||||
ScheduledFuture<?> runnableFuture = executor.scheduleAtFixedRate(() -> {
|
ScheduledFuture<?> runnableFuture = executor.scheduleAtFixedRate(() -> {
|
||||||
log.info("定时发送接入请求...");
|
log.info("定时发送接入请求...");
|
||||||
csDeviceService.devAccess(nDid, version);
|
csDeviceService.devAccessMid(nDid,version, mid[0]);
|
||||||
Integer status2 = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
|
Integer status2 = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
|
||||||
if (Objects.equals(status2,AccessEnum.ONLINE.getCode())){
|
if (Objects.equals(status2,AccessEnum.ONLINE.getCode())){
|
||||||
throw new BusinessException(CommonResponseEnum.SUCCESS);
|
throw new BusinessException(CommonResponseEnum.SUCCESS);
|
||||||
|
} else {
|
||||||
|
mid[0] = mid[0] + 1;
|
||||||
}
|
}
|
||||||
//记录日志
|
//记录日志
|
||||||
logDto.setOperate("装置掉线,定时发送接入请求,装置为:" + nDid + ",请求的时间戳为:" + System.currentTimeMillis());
|
logDto.setOperate("装置掉线,定时发送接入请求,装置为:" + nDid + ",请求的时间戳为:" + System.currentTimeMillis());
|
||||||
|
|||||||
@@ -367,6 +367,17 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
|||||||
publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(reqAndResParam),1,false);
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 平台对设备发起主题询问命令
|
* 平台对设备发起主题询问命令
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user