This commit is contained in:
xy
2024-08-06 10:04:37 +08:00
parent 32a6b5c52e
commit 9b7ec5725b
2 changed files with 19 additions and 8 deletions

View File

@@ -86,19 +86,30 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
record.setOfflineTime(LocalDateTime.now());
onlineLogsService.updateById(record);
try {
//装置掉线等待10分钟,发起接入请求
String version = csTopicService.getVersion(nDid);
log.info("装置掉线10分钟发送接入请求接入失败则进入定时接入任务");
Thread.sleep(600000);
//装置没有心跳,则立马发起接入请求
log.info("装置掉线3分钟发送接入请求");
csDeviceService.devAccess(nDid,version);
//接入再次失败,则定时发起接入请求
Thread.sleep(1000);
Integer status = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
if (Objects.equals(status,AccessEnum.ONLINE.getCode())){
throw new BusinessException(CommonResponseEnum.SUCCESS);
}
//心跳断连立马发起接入失败后1分钟再次发起请求请求3次
for (int i = 1; i < 4; i++) {
//接入再次失败,则定时发起接入请求
Thread.sleep(1000 * 60);
log.info("装置定时1分钟发送接入请求" + i + "次尝试");
csDeviceService.devAccess(nDid,version);
status = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
if (Objects.equals(status,AccessEnum.ONLINE.getCode())){
break;
}
}
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("定时发送接入请求...");
log.info("装置10分钟定时发送接入请求...");
csDeviceService.devAccessMid(nDid,version, mid[0]);
Integer status2 = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
if (Objects.equals(status2,AccessEnum.ONLINE.getCode())){

View File

@@ -174,7 +174,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
logDto.setResult(1);
Object model = null;
try {
Thread.sleep(1500);
Thread.sleep(3000);
String key = AppRedisKey.LINE + nDid;
model = redisUtil.getObjectByKey(key);
if (Objects.isNull(model)){