From 0c18e29aaf5e3f14195c9a69db6f9045c6229657 Mon Sep 17 00:00:00 2001 From: redkale Date: Mon, 25 Dec 2023 12:25:20 +0800 Subject: [PATCH] CacheSource --- .../org/redkale/source/CacheMemorySource.java | 17 +++++++++-------- .../java/org/redkale/source/CacheSource.java | 12 ++++++------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/redkale/source/CacheMemorySource.java b/src/main/java/org/redkale/source/CacheMemorySource.java index 63a63dbc7..9f52b9220 100644 --- a/src/main/java/org/redkale/source/CacheMemorySource.java +++ b/src/main/java/org/redkale/source/CacheMemorySource.java @@ -310,8 +310,8 @@ public final class CacheMemorySource extends AbstractCacheSource { } @Override - public CompletableFuture msetnxAsync(Serializable... keyVals) { - return runFuture(() -> msetnx(keyVals)); + public CompletableFuture msetnxAsync(Serializable... keyVals) { + return supplyFuture(() -> msetnx(keyVals)); } @Override @@ -320,8 +320,8 @@ public final class CacheMemorySource extends AbstractCacheSource { } @Override - public CompletableFuture msetnxAsync(Map map) { - return runFuture(() -> msetnx(map)); + public CompletableFuture msetnxAsync(Map map) { + return supplyFuture(() -> msetnx(map)); } @Override @@ -430,20 +430,20 @@ public final class CacheMemorySource extends AbstractCacheSource { } @Override - public void msetnx(Serializable... keyVals) { + public boolean msetnx(Serializable... keyVals) { if (keyVals.length % 2 != 0) { throw new SourceException("key value must be paired"); } - msetnx(Utility.ofMap(keyVals)); + return msetnx(Utility.ofMap(keyVals)); } @Override - public void msetnx(Map map) { + public boolean msetnx(Map map) { containerLock.lock(); try { for (Object key : map.keySet()) { if (find(key.toString(), CacheEntryType.OBJECT) != null) { - return; + return false; } } for (Map.Entry en : (Set>) map.entrySet()) { @@ -452,6 +452,7 @@ public final class CacheMemorySource extends AbstractCacheSource { entry.setObjectValue(this.convert, null, en.getValue()); entry.lastAccessed = System.currentTimeMillis(); } + return true; } finally { containerLock.unlock(); } diff --git a/src/main/java/org/redkale/source/CacheSource.java b/src/main/java/org/redkale/source/CacheSource.java index 9e3d23ab7..4104dc880 100644 --- a/src/main/java/org/redkale/source/CacheSource.java +++ b/src/main/java/org/redkale/source/CacheSource.java @@ -172,12 +172,12 @@ public interface CacheSource extends Resourcable { } //MSETNX key value [key value ...] - default void msetnx(Serializable... keyVals) { - msetnxAsync(keyVals).join(); + default boolean msetnx(Serializable... keyVals) { + return msetnxAsync(keyVals).join(); } - default void msetnx(Map map) { - msetnxAsync(map).join(); + default boolean msetnx(Map map) { + return msetnxAsync(map).join(); } //------------------------ setnx ------------------------ @@ -1067,9 +1067,9 @@ public interface CacheSource extends Resourcable { public CompletableFuture msetAsync(Map map); //MSET key value [key value ...] - public CompletableFuture msetnxAsync(Serializable... keyVals); + public CompletableFuture msetnxAsync(Serializable... keyVals); - public CompletableFuture msetnxAsync(Map map); + public CompletableFuture msetnxAsync(Map map); //------------------------ setnx ------------------------ public CompletableFuture setnxAsync(String key, Convert convert, Type type, T value);