From eabdc13c5311e5903d87e455553fc117964f8136 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Thu, 9 Nov 2017 10:17:31 +0800 Subject: [PATCH] --- src/org/redkale/source/CacheMemorySource.java | 7 ++++++- src/org/redkale/source/CacheSource.java | 12 +++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/org/redkale/source/CacheMemorySource.java b/src/org/redkale/source/CacheMemorySource.java index 832554737..b3aa1f0dd 100644 --- a/src/org/redkale/source/CacheMemorySource.java +++ b/src/org/redkale/source/CacheMemorySource.java @@ -75,6 +75,11 @@ public class CacheMemorySource extends AbstractService impleme this.needStore = !flag; } + @Override + public boolean isSupportQueryList() { + return true; + } + @Override public void init(AnyValue conf) { if (this.convert == null) this.convert = this.defaultConvert; @@ -155,7 +160,7 @@ public class CacheMemorySource extends AbstractService impleme } if (remoteSource != null && !Sncp.isRemote(this)) { SncpClient client = Sncp.getSncpClient((Service) remoteSource); - if (client != null && client.getRemoteGroupTransport() != null) { + if (client != null && client.getRemoteGroupTransport() != null && remoteSource.isSupportQueryList()) { super.runAsync(() -> { try { CompletableFuture>> listFuture = remoteSource.queryListAsync(); diff --git a/src/org/redkale/source/CacheSource.java b/src/org/redkale/source/CacheSource.java index 93a9c06b9..9d2aef9a3 100644 --- a/src/org/redkale/source/CacheSource.java +++ b/src/org/redkale/source/CacheSource.java @@ -30,6 +30,11 @@ public interface CacheSource { return true; } + //是否支持queryList 或 queryListAsync 方法 + default boolean isSupportQueryList() { + return false; + } + public boolean exists(final String key); public V get(final String key); @@ -104,7 +109,12 @@ public interface CacheSource { public CompletableFuture>> queryListAsync(); default CompletableFuture isOpenAsync() { - return CompletableFuture.completedFuture(true); + return CompletableFuture.completedFuture(isOpen()); + } + + //是否支持queryList 或 queryListAsync 方法 + default CompletableFuture isSupportQueryListAsync() { + return CompletableFuture.completedFuture(isSupportQueryList()); } public static enum CacheEntryType {