| | |
| | | import com.ruoyi.device.bts.BtsDevelopmentSimulator; |
| | | import com.ruoyi.device.discovery.DeviceDiscoveryCandidateStore; |
| | | import com.ruoyi.device.discovery.DeviceDiscoveryCandidateStore.CollectorCandidate; |
| | | import com.ruoyi.system.mapper.TCollectorMapper; |
| | | |
| | | /** 将模拟采集器的发现和实时状态写入 Redis,不回写正式 MySQL 记录。 */ |
| | | @Component |
| | |
| | | { |
| | | private final BtsDevelopmentSimulator simulator; |
| | | private final DeviceDiscoveryCandidateStore candidateStore; |
| | | private final TCollectorMapper collectorMapper; |
| | | |
| | | public DevelopmentCollectorStatusSynchronizer(BtsDevelopmentSimulator simulator, |
| | | DeviceDiscoveryCandidateStore candidateStore) |
| | | { |
| | | this(simulator, candidateStore, null); |
| | | } |
| | | |
| | | public DevelopmentCollectorStatusSynchronizer(BtsDevelopmentSimulator simulator, |
| | | DeviceDiscoveryCandidateStore candidateStore, TCollectorMapper collectorMapper) |
| | | { |
| | | this.simulator = simulator; |
| | | this.candidateStore = candidateStore; |
| | | this.collectorMapper = collectorMapper; |
| | | } |
| | | |
| | | /** 完整替换 dev-sim 采集器快照,删除配置后候选立即消失。 */ |
| | |
| | | observedAt.plus(Duration.ofSeconds(30)))) |
| | | .toList(); |
| | | candidateStore.replaceCollectors(BtsDevelopmentSimulator.ADAPTER_CODE, candidates); |
| | | if (collectorMapper != null) |
| | | { |
| | | candidates.forEach(candidate -> collectorMapper.updateRegisteredObservation(candidate.deviceCode(), |
| | | candidate.online() ? "ONLINE" : "OFFLINE")); |
| | | } |
| | | } |
| | | } |