package com.ruoyi.config; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import com.ruoyi.device.bts.BtsDevelopmentSimulator; import com.ruoyi.device.registry.DeviceAdapterRegistry; import com.ruoyi.system.service.impl.DeviceDiscoveryPersistenceService; import com.ruoyi.system.service.impl.DeviceDiscoveryPersistenceService.DiscoverySource; /** 轮询代码固定装配的 dev-sim;该运行时不依赖数据库适配器记录。 */ @Component public class DevelopmentSimulatorDiscoveryScheduler { private final DeviceAdapterRegistry registry; private final DeviceDiscoveryPersistenceService persistence; public DevelopmentSimulatorDiscoveryScheduler(DeviceAdapterRegistry registry, DeviceDiscoveryPersistenceService persistence) { this.registry = registry; this.persistence = persistence; } /** 注册表已包含固定开发适配器时,将一轮检测柜观测写入 Redis 候选。 */ @Scheduled(fixedDelay = BtsDevelopmentSimulator.POLL_INTERVAL_MS) public void discover() { if (!registry.contains(BtsDevelopmentSimulator.ADAPTER_CODE)) return; persistence.discoverForReception(registry, new DiscoverySource(BtsDevelopmentSimulator.ADAPTER_CODE, null, BtsDevelopmentSimulator.ADAPTER_NAME, BtsDevelopmentSimulator.POLL_INTERVAL_MS)); } }