diff --git a/src/main/java/org/redkale/cluster/CacheClusterAgent.java b/src/main/java/org/redkale/cluster/CacheClusterAgent.java index d28f6f8e3..beb97fd85 100644 --- a/src/main/java/org/redkale/cluster/CacheClusterAgent.java +++ b/src/main/java/org/redkale/cluster/CacheClusterAgent.java @@ -237,7 +237,7 @@ public class CacheClusterAgent extends ClusterAgent implements Resourcable { } private CompletableFuture> queryAddress(final String serviceName) { - final CompletableFuture> future = source.hscanAsync(serviceName, AddressEntry.class, 0, 10000); + final CompletableFuture> future = source.hmapAsync(serviceName, AddressEntry.class, new AtomicInteger(), 10000); return future.thenApply(map -> { final Set set = new HashSet<>(); map.forEach((n, v) -> { diff --git a/src/main/java/org/redkale/source/AbstractCacheSource.java b/src/main/java/org/redkale/source/AbstractCacheSource.java index ff11ae082..12ce4e62f 100644 --- a/src/main/java/org/redkale/source/AbstractCacheSource.java +++ b/src/main/java/org/redkale/source/AbstractCacheSource.java @@ -3,6 +3,8 @@ package org.redkale.source; import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.function.Supplier; import org.redkale.annotation.AutoLoad; import org.redkale.annotation.ResourceListener; import org.redkale.annotation.ResourceType; @@ -108,4 +110,8 @@ public abstract class AbstractCacheSource extends AbstractService implements Cac } return source; } + + protected CompletableFuture supplyAsync(Supplier supplier) { + return CompletableFuture.supplyAsync(supplier); + } } diff --git a/src/main/java/org/redkale/source/CacheMemorySource.java b/src/main/java/org/redkale/source/CacheMemorySource.java index 9af63f2f4..1a5f3e069 100644 --- a/src/main/java/org/redkale/source/CacheMemorySource.java +++ b/src/main/java/org/redkale/source/CacheMemorySource.java @@ -9,7 +9,7 @@ import java.io.Serializable; import java.lang.reflect.Type; import java.util.*; import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.*; import java.util.concurrent.locks.ReentrantLock; import java.util.function.*; import java.util.logging.*; @@ -393,12 +393,12 @@ public final class CacheMemorySource extends AbstractCacheSource { } @Override - public Map hscan(final String key, final Type type, int offset, int limit) { - return hscan(key, type, offset, limit, null); + public Map hmap(final String key, final Type type, AtomicInteger cursor, int limit) { + return hmap(key, type, cursor, limit, null); } @Override - public Map hscan(final String key, final Type type, int offset, int limit, String pattern) { + public Map hmap(final String key, final Type type, AtomicInteger cursor, int limit, String pattern) { if (key == null) { return new HashMap(); } @@ -651,13 +651,13 @@ public final class CacheMemorySource extends AbstractCacheSource { } @Override - public CompletableFuture> hscanAsync(final String key, final Type type, int offset, int limit) { - return CompletableFuture.supplyAsync(() -> hscan(key, type, offset, limit), getExecutor()); + public CompletableFuture> hmapAsync(final String key, final Type type, AtomicInteger cursor, int limit) { + return CompletableFuture.supplyAsync(() -> hmap(key, type, cursor, limit), getExecutor()); } @Override - public CompletableFuture> hscanAsync(final String key, final Type type, int offset, int limit, String pattern) { - return CompletableFuture.supplyAsync(() -> hscan(key, type, offset, limit, pattern), getExecutor()); + public CompletableFuture> hmapAsync(final String key, final Type type, AtomicInteger cursor, int limit, String pattern) { + return CompletableFuture.supplyAsync(() -> hmap(key, type, cursor, limit, pattern), getExecutor()); } @Override @@ -1993,9 +1993,8 @@ public final class CacheMemorySource extends AbstractCacheSource { return mapValue; } } - + //-------------------------- 过期方法 ---------------------------------- - @Override @Deprecated(since = "2.8.0") public Collection getexLongCollection(String key, int expireSeconds) { diff --git a/src/main/java/org/redkale/source/CacheSource.java b/src/main/java/org/redkale/source/CacheSource.java index 418466b4f..9ccee7c32 100644 --- a/src/main/java/org/redkale/source/CacheSource.java +++ b/src/main/java/org/redkale/source/CacheSource.java @@ -9,6 +9,7 @@ import java.io.Serializable; import java.lang.reflect.Type; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicInteger; import org.redkale.annotation.Component; import org.redkale.convert.Convert; import org.redkale.util.*; @@ -247,9 +248,9 @@ public interface CacheSource extends Resourcable { public List hmget(final String key, final Type type, final String... fields); - public Map hscan(final String key, final Type type, int offset, int limit); + public Map hmap(final String key, final Type type, AtomicInteger cursor, int limit); - public Map hscan(final String key, final Type type, int offset, int limit, String pattern); + public Map hmap(final String key, final Type type, AtomicInteger cursor, int limit, String pattern); //------------------------ list ------------------------ public int llen(final String key); @@ -552,9 +553,9 @@ public interface CacheSource extends Resourcable { public CompletableFuture> hmgetAsync(final String key, final Type type, final String... fields); - public CompletableFuture> hscanAsync(final String key, final Type type, int offset, int limit); + public CompletableFuture> hmapAsync(final String key, final Type type, AtomicInteger cursor, int limit); - public CompletableFuture> hscanAsync(final String key, final Type type, int offset, int limit, String pattern); + public CompletableFuture> hmapAsync(final String key, final Type type, AtomicInteger cursor, int limit, String pattern); //------------------------ listAsync ------------------------ public CompletableFuture llenAsync(final String key);