diff --git a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractCommonCache.java b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractCommonCache.java index 5f27e25..cdb3463 100644 --- a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractCommonCache.java +++ b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractCommonCache.java @@ -227,7 +227,8 @@ private Cache getCache() { */ public void whenRemove(K key, V value, RemovalCause removalCause) { if (log.isDebugEnabled()) { - log.debug("[RemoveCallback]Remove cache key:{}, value:{}, cause:{}, cacheName={}", key, value, removalCause, getName()); + log.debug("[RemoveCallback]Remove cache key:{}, value:{}, cause:{}, cacheName={}", + key, value, removalCause, getName()); } } } diff --git a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractLoadingCache.java b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractLoadingCache.java index d530a47..e414797 100644 --- a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractLoadingCache.java +++ b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractLoadingCache.java @@ -296,7 +296,8 @@ private LoadingCache getCache() { */ public void whenRemove(K key, V value, RemovalCause removalCause) { if (log.isDebugEnabled()) { - log.debug("[RemoveCallback]Remove cache key:{}, value:{}, cause:{}, cacheName={}", key, value, removalCause, getName()); + log.debug("[RemoveCallback]Remove cache key:{}, value:{}, cause:{}, cacheName={}", + key, value, removalCause, getName()); } } diff --git a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractSynchronousCache.java b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractSynchronousCache.java index ffa4e76..974ef99 100644 --- a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractSynchronousCache.java +++ b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractSynchronousCache.java @@ -53,14 +53,26 @@ public V getValueWithSyncValue(K key, Y syncValue) throws Exception { return getValue(key); } synchronized (this) { + boolean needSync = false; if (!effectiveCheck(key, syncValue)) { + needSync = true; removeValue(key); - getSyncValueLocalCache().putValue(key, syncValue); - if (log.isInfoEnabled()) { - log.info("[缓存同步]数据同步Key不一致,已更新!Cache={}, Key={}, SyncValue={}", getName(), key, syncValue); + } + V value = null; + try { + value = getValue(key); + if (needSync) { + getSyncValueLocalCache().putValue(key, syncValue); + if (log.isInfoEnabled()) { + log.info("[缓存同步]数据同步Key不一致,已更新!Cache={}, Key={}, SyncValue={}", + getName(), key, syncValue); + } } + } catch (Exception e) { + log.error("Error occurred when getValue, Cache={}, Key={}, SyncValue={}", + getName(), key, syncValue, e); } - return getValue(key); + return value; } } }