diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java index c7eacb8d..06e955df 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java @@ -14,9 +14,13 @@ import java.util.concurrent.TimeUnit; */ @Component(value = "local") public class LocalDeviceServiceImpl implements DeviceService { + /*static RemovalListener removalListener = new RemovalListener() { + public void onRemoval(RemovalNotification removal) { + } + };*/ private static final Cache deviceCache = CacheBuilder.newBuilder(). - expireAfterWrite(30, TimeUnit.MINUTES).build(); + expireAfterWrite(90, TimeUnit.MINUTES).build(); private static final Cache> subDeviceCache = CacheBuilder.newBuilder(). expireAfterWrite(10, TimeUnit.MINUTES).build(); @@ -49,9 +53,12 @@ public class LocalDeviceServiceImpl implements DeviceService { } public void refresh(String deviceId){ - Device device = delegate.findByDeviceId(deviceId); + Device device = deviceCache.getIfPresent(deviceId); if (device != null) { - deviceCache.put(deviceId, device); + if(device.getParentId()!=null) { + subDeviceCache.invalidate(device.getParentId()); + } + deviceCache.invalidate(deviceId); } } }