REM:
1. 启动处置任务时过滤非正常状态的设备
This commit is contained in:
HuangXin 2021-02-02 18:38:38 +08:00
parent e8599ad967
commit 1f2b49cb47
2 changed files with 16 additions and 8 deletions

View File

@ -1,6 +1,14 @@
package com.dispose.service.impl;
import com.dispose.common.*;
import com.dispose.common.DisposeConfigValue;
import com.dispose.common.DisposeDeviceType;
import com.dispose.common.DisposeObjectType;
import com.dispose.common.DisposeTaskStatus;
import com.dispose.common.DpTechAttackType;
import com.dispose.common.ErrorCode;
import com.dispose.common.Helper;
import com.dispose.common.NetflowDirection;
import com.dispose.common.ObjectStatus;
import com.dispose.manager.DeviceTaskManager;
import com.dispose.manager.DisposeTaskManager;
import com.dispose.pojo.entity.DeviceTask;
@ -497,6 +505,8 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService {
// 为当前所有可用处置设备创建对应的处置任务
disposeAbilityRouterService.getAllAbilityDevices().stream()
// 过滤非正常状态设备
.filter(f -> f.getDev().getStatus().equals(ObjectStatus.NORMAL))
// 判断是否是当前设备的处置任务
.filter(f -> v.getDeviceId() == -1 || f.getDev().getId().equals(v.getDeviceId()))
// 判断是否是当前区域处置

View File

@ -202,16 +202,16 @@ public class DisposeAbilityRouterServiceImpl implements DisposeAbilityRouterServ
public void runPeriodTask() {
synchronized (this) {
List<String> rmKey = new ArrayList<>();
for (AbilityInfo v : getAllAbilityDevices()) {
DisposeDevice dev = disposeDeviceManager.getDisposeDeviceById(v.getDev().getId());
if (dev == null || !dev.getStatus().equals(ObjectStatus.NORMAL)) {
rmKey.add(getAbilityDeviceHashKey(v.getDev().getIpAddr(), v.getDev().getIpPort(),
String.valueOf(v.getDev().getDeviceType())));
} else {
if (dev != null && !dev.getStatus().equals(ObjectStatus.NORMAL)) {
// 更新设备状态
v.getDev().setStatus(dev.getStatus());
v.getDb().periodTaskRuntime();
// 同步最新处置平台业务信息到设备
v.getDb().upgradeServiceGroup(serviceGroupMapper.selectAll());
@ -241,8 +241,6 @@ public class DisposeAbilityRouterServiceImpl implements DisposeAbilityRouterServ
}));
}
}
rmKey.forEach(disposeAbilityMap::remove);
}
}