修改代码
This commit is contained in:
parent
a64a96ca76
commit
b35f7438b1
|
|
@ -119,55 +119,11 @@ public class SynService {
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 建立设备到网关的映射关系
|
||||
* 优化策略:先识别所有网关设备,然后为每个网关查询其子设备
|
||||
*
|
||||
* @return 设备ID到网关ID的映射 Map<子设备ID, 网关ID>
|
||||
*/
|
||||
private Map<String, String> buildDeviceToGatewayMap() {
|
||||
Map<String, String> deviceToGatewayMap = new HashMap<>();
|
||||
|
||||
try {
|
||||
// 获取所有设备
|
||||
Iterable<List<DeviceInfo>> allDevices = iThingsBoardDomain.getAllDevices();
|
||||
List<DeviceInfo> gatewayDevices = new ArrayList<>();
|
||||
|
||||
// 第一步:识别所有网关设备
|
||||
for (List<DeviceInfo> deviceBatch : allDevices) {
|
||||
for (DeviceInfo deviceInfo : deviceBatch) {
|
||||
if (deviceInfo.isGateway()) {
|
||||
gatewayDevices.add(deviceInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
log.info("发现 {} 个网关设备", gatewayDevices.size());
|
||||
|
||||
// 第二步:为每个网关查询其子设备,建立映射关系
|
||||
for (DeviceInfo gateway : gatewayDevices) {
|
||||
String gatewayId = gateway.getId();
|
||||
List<String> childDeviceIds = iThingsBoardDomain.getGatewayChildDevices(gatewayId);
|
||||
|
||||
for (String childDeviceId : childDeviceIds) {
|
||||
deviceToGatewayMap.put(childDeviceId, gatewayId);
|
||||
}
|
||||
|
||||
log.debug("网关 {} 有 {} 个子设备", gateway.getName(), childDeviceIds.size());
|
||||
}
|
||||
|
||||
log.info("成功建立设备到网关的映射关系,共 {} 个子设备", deviceToGatewayMap.size());
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("建立设备到网关映射关系失败: {}", e.getMessage(), e);
|
||||
}
|
||||
|
||||
return deviceToGatewayMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时任务:同步基础表数据
|
||||
* 执行时间:启动后1分钟开始,每2分钟执行一次(可通过配置文件修改)
|
||||
* 执行时间:启动后1分钟开始,每10分钟执行一次(可通过配置文件修改)
|
||||
* 配置项:device.schedule.print-devices.initial-delay 初始延迟时间(毫秒)
|
||||
* device.schedule.print-devices.fixed-delay 执行间隔时间(毫秒)
|
||||
*
|
||||
|
|
@ -177,7 +133,7 @@ public class SynService {
|
|||
* 3. 同步非网关的独立设备(机场和无人机)
|
||||
*/
|
||||
@Scheduled(initialDelayString = "${device.schedule.update-devices.initial-delay:60000}",
|
||||
fixedDelayString = "${device.schedule.update-devices.fixed-delay:120000}")
|
||||
fixedDelayString = "${device.schedule.update-devices.fixed-delay:600000}")
|
||||
public void updateDevicesScheduled() {
|
||||
try {
|
||||
log.info("========== 开始执行定时任务:同步基础表数据 ==========");
|
||||
|
|
|
|||
Loading…
Reference in New Issue