微调
This commit is contained in:
@@ -86,19 +86,30 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
|
|||||||
record.setOfflineTime(LocalDateTime.now());
|
record.setOfflineTime(LocalDateTime.now());
|
||||||
onlineLogsService.updateById(record);
|
onlineLogsService.updateById(record);
|
||||||
try {
|
try {
|
||||||
//装置掉线等待10分钟,发起接入请求
|
|
||||||
String version = csTopicService.getVersion(nDid);
|
String version = csTopicService.getVersion(nDid);
|
||||||
log.info("装置掉线10分钟发送接入请求,接入失败则进入定时接入任务");
|
//装置没有心跳,则立马发起接入请求
|
||||||
Thread.sleep(600000);
|
log.info("装置掉线3分钟发送接入请求");
|
||||||
csDeviceService.devAccess(nDid,version);
|
csDeviceService.devAccess(nDid,version);
|
||||||
//接入再次失败,则定时发起接入请求
|
|
||||||
Thread.sleep(1000);
|
|
||||||
Integer status = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
|
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())){
|
if (!Objects.isNull(status) && Objects.equals(status,AccessEnum.OFFLINE.getCode())){
|
||||||
final int[] mid = {2};
|
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("装置10分钟定时发送接入请求...");
|
||||||
csDeviceService.devAccessMid(nDid,version, mid[0]);
|
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())){
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
|||||||
logDto.setResult(1);
|
logDto.setResult(1);
|
||||||
Object model = null;
|
Object model = null;
|
||||||
try {
|
try {
|
||||||
Thread.sleep(1500);
|
Thread.sleep(3000);
|
||||||
String key = AppRedisKey.LINE + nDid;
|
String key = AppRedisKey.LINE + nDid;
|
||||||
model = redisUtil.getObjectByKey(key);
|
model = redisUtil.getObjectByKey(key);
|
||||||
if (Objects.isNull(model)){
|
if (Objects.isNull(model)){
|
||||||
|
|||||||
Reference in New Issue
Block a user