From de63f81238f464080162569bdd0220977e375a5c Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Sat, 25 Jul 2020 09:39:43 +0800 Subject: [PATCH] =?UTF-8?q?CacheSource=20remove=E7=B3=BB=E5=88=97=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E8=BF=94=E5=9B=9E=E5=80=BC=E7=94=B1void=E6=94=B9?= =?UTF-8?q?=E6=88=90int?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../redkale/service/WebSocketNodeService.java | 4 +- src/org/redkale/source/CacheMemorySource.java | 112 +++++++++--------- src/org/redkale/source/CacheSource.java | 36 +++--- 3 files changed, 76 insertions(+), 76 deletions(-) diff --git a/src/org/redkale/service/WebSocketNodeService.java b/src/org/redkale/service/WebSocketNodeService.java index a2b523174..4341dd7ef 100644 --- a/src/org/redkale/service/WebSocketNodeService.java +++ b/src/org/redkale/service/WebSocketNodeService.java @@ -112,10 +112,10 @@ public class WebSocketNodeService extends WebSocketNode implements Service { @Override public CompletableFuture disconnect(Serializable userid, WebSocketAddress wsaddr) { tryAcquireSemaphore(); - CompletableFuture future = source.removeSetItemAsync(SOURCE_SNCP_USERID_PREFIX + userid, WebSocketAddress.class, wsaddr); + CompletableFuture future = source.removeSetItemAsync(SOURCE_SNCP_USERID_PREFIX + userid, WebSocketAddress.class, wsaddr); if (semaphore != null) future.whenComplete((r, e) -> releaseSemaphore()); if (logger.isLoggable(Level.FINEST)) logger.finest(WebSocketNodeService.class.getSimpleName() + ".event: " + userid + " disconnect from " + wsaddr); - return future; + return future.thenApply(v -> null); } /** diff --git a/src/org/redkale/source/CacheMemorySource.java b/src/org/redkale/source/CacheMemorySource.java index 5c3468eb6..f702c435c 100644 --- a/src/org/redkale/source/CacheMemorySource.java +++ b/src/org/redkale/source/CacheMemorySource.java @@ -449,9 +449,9 @@ public final class CacheMemorySource extends AbstractService i for (int i = 0; i < fields.length; i++) { Serializable val = (Serializable) entry.mapValue.get(fields[i]); if (type == String.class) { - rs.add(val == null ? null : (T)String.valueOf(val)); + rs.add(val == null ? null : (T) String.valueOf(val)); } else { - rs.add((T)val); + rs.add((T) val); } } return rs; @@ -905,9 +905,9 @@ public final class CacheMemorySource extends AbstractService i } @Override - public void remove(String key) { - if (key == null) return; - container.remove(key); + public int remove(String key) { + if (key == null) return 0; + return container.remove(key) == null ? 0 : 1; } @Override @@ -961,8 +961,8 @@ public final class CacheMemorySource extends AbstractService i } @Override - public CompletableFuture removeAsync(final String key) { - return CompletableFuture.runAsync(() -> remove(key), getExecutor()).whenComplete(futureCompleteConsumer); + public CompletableFuture removeAsync(final String key) { + return CompletableFuture.supplyAsync(() -> remove(key), getExecutor()).whenComplete(futureCompleteConsumer); } @Override @@ -1276,55 +1276,56 @@ public final class CacheMemorySource extends AbstractService i } @Override - public void removeListItem(String key, V value) { - if (key == null) return; + public int removeListItem(String key, V value) { + if (key == null) return 0; CacheEntry entry = container.get(key); - if (entry == null || entry.listValue == null) return; - entry.listValue.remove(value); + if (entry == null || entry.listValue == null) return 0; + return entry.listValue.remove(value) ? 1 : 0; + } @Override - public void removeListItem(String key, final Type componentType, T value) { - if (key == null) return; + public int removeListItem(String key, final Type componentType, T value) { + if (key == null) return 0; CacheEntry entry = container.get(key); - if (entry == null || entry.listValue == null) return; - entry.listValue.remove(value); + if (entry == null || entry.listValue == null) return 0; + return entry.listValue.remove(value) ? 1 : 0; } @Override - public void removeStringListItem(String key, String value) { - if (key == null) return; + public int removeStringListItem(String key, String value) { + if (key == null) return 0; CacheEntry entry = container.get(key); - if (entry == null || entry.listValue == null) return; - entry.listValue.remove(value); + if (entry == null || entry.listValue == null) return 0; + return entry.listValue.remove(value) ? 1 : 0; } @Override - public void removeLongListItem(String key, long value) { - if (key == null) return; + public int removeLongListItem(String key, long value) { + if (key == null) return 0; CacheEntry entry = container.get(key); - if (entry == null || entry.listValue == null) return; - entry.listValue.remove(value); + if (entry == null || entry.listValue == null) return 0; + return entry.listValue.remove(value) ? 1 : 0; } @Override - public CompletableFuture removeListItemAsync(final String key, final V value) { - return CompletableFuture.runAsync(() -> removeListItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); + public CompletableFuture removeListItemAsync(final String key, final V value) { + return CompletableFuture.supplyAsync(() -> removeListItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); } @Override - public CompletableFuture removeListItemAsync(final String key, final Type componentType, T value) { - return CompletableFuture.runAsync(() -> removeListItem(key, componentType, value), getExecutor()).whenComplete(futureCompleteConsumer); + public CompletableFuture removeListItemAsync(final String key, final Type componentType, T value) { + return CompletableFuture.supplyAsync(() -> removeListItem(key, componentType, value), getExecutor()).whenComplete(futureCompleteConsumer); } @Override - public CompletableFuture removeStringListItemAsync(final String key, final String value) { - return CompletableFuture.runAsync(() -> removeStringListItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); + public CompletableFuture removeStringListItemAsync(final String key, final String value) { + return CompletableFuture.supplyAsync(() -> removeStringListItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); } @Override - public CompletableFuture removeLongListItemAsync(final String key, final long value) { - return CompletableFuture.runAsync(() -> removeLongListItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); + public CompletableFuture removeLongListItemAsync(final String key, final long value) { + return CompletableFuture.supplyAsync(() -> removeLongListItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); } protected void appendSetItem(CacheEntryType cacheType, String key, Object value) { @@ -1382,56 +1383,55 @@ public final class CacheMemorySource extends AbstractService i } @Override - public void removeSetItem(String key, V value) { - if (key == null) return; + public int removeSetItem(String key, V value) { + if (key == null) return 0; CacheEntry entry = container.get(key); - if (entry == null || entry.csetValue == null) return; - entry.csetValue.remove(value); + if (entry == null || entry.csetValue == null) return 0; + return entry.csetValue.remove(value) ? 1 : 0; } @Override - public void removeSetItem(String key, Type type, T value) { - if (key == null) return; + public int removeSetItem(String key, Type type, T value) { + if (key == null) return 0; CacheEntry entry = container.get(key); - if (entry == null || entry.csetValue == null) return; - entry.csetValue.remove(value); + if (entry == null || entry.csetValue == null) return 0; + return entry.csetValue.remove(value) ? 1 : 0; } @Override - public void removeStringSetItem(String key, String value) { - if (key == null) return; + public int removeStringSetItem(String key, String value) { + if (key == null) return 0; CacheEntry entry = container.get(key); - if (entry == null || entry.csetValue == null) return; - entry.csetValue.remove(value); + if (entry == null || entry.csetValue == null) return 0; + return entry.csetValue.remove(value) ? 1 : 0; } @Override - - public void removeLongSetItem(String key, long value) { - if (key == null) return; + public int removeLongSetItem(String key, long value) { + if (key == null) return 0; CacheEntry entry = container.get(key); - if (entry == null || entry.csetValue == null) return; - entry.csetValue.remove(value); + if (entry == null || entry.csetValue == null) return 0; + return entry.csetValue.remove(value) ? 1 : 0; } @Override - public CompletableFuture removeSetItemAsync(final String key, final V value) { - return CompletableFuture.runAsync(() -> removeSetItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); + public CompletableFuture removeSetItemAsync(final String key, final V value) { + return CompletableFuture.supplyAsync(() -> removeSetItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); } @Override - public CompletableFuture removeSetItemAsync(final String key, final Type componentType, final T value) { - return CompletableFuture.runAsync(() -> removeSetItem(key, componentType, value), getExecutor()).whenComplete(futureCompleteConsumer); + public CompletableFuture removeSetItemAsync(final String key, final Type componentType, final T value) { + return CompletableFuture.supplyAsync(() -> removeSetItem(key, componentType, value), getExecutor()).whenComplete(futureCompleteConsumer); } @Override - public CompletableFuture removeStringSetItemAsync(final String key, final String value) { - return CompletableFuture.runAsync(() -> removeStringSetItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); + public CompletableFuture removeStringSetItemAsync(final String key, final String value) { + return CompletableFuture.supplyAsync(() -> removeStringSetItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); } @Override - public CompletableFuture removeLongSetItemAsync(final String key, final long value) { - return CompletableFuture.runAsync(() -> removeLongSetItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); + public CompletableFuture removeLongSetItemAsync(final String key, final long value) { + return CompletableFuture.supplyAsync(() -> removeLongSetItem(key, value), getExecutor()).whenComplete(futureCompleteConsumer); } @Override diff --git a/src/org/redkale/source/CacheSource.java b/src/org/redkale/source/CacheSource.java index 9b6b8384f..e5bb044dc 100644 --- a/src/org/redkale/source/CacheSource.java +++ b/src/org/redkale/source/CacheSource.java @@ -130,7 +130,7 @@ public interface CacheSource { public void setExpireSeconds(final String key, final int expireSeconds); - public void remove(final String key); + public int remove(final String key); public long incr(final String key); @@ -156,23 +156,23 @@ public interface CacheSource { public void appendListItem(final String key, final V value); - public void removeListItem(final String key, final V value); + public int removeListItem(final String key, final V value); public boolean existsSetItem(final String key, final V value); public void appendSetItem(final String key, final V value); - public void removeSetItem(final String key, final V value); + public int removeSetItem(final String key, final V value); public void appendListItem(final String key, final Type componentType, final T value); - public void removeListItem(final String key, final Type componentType, final T value); + public int removeListItem(final String key, final Type componentType, final T value); public boolean existsSetItem(final String key, final Type componentType, final T value); public void appendSetItem(final String key, final Type componentType, final T value); - public void removeSetItem(final String key, final Type componentType, final T value); + public int removeSetItem(final String key, final Type componentType, final T value); public List queryKeys(); @@ -204,13 +204,13 @@ public interface CacheSource { public void appendStringListItem(final String key, final String value); - public void removeStringListItem(final String key, final String value); + public int removeStringListItem(final String key, final String value); public boolean existsStringSetItem(final String key, final String value); public void appendStringSetItem(final String key, final String value); - public void removeStringSetItem(final String key, final String value); + public int removeStringSetItem(final String key, final String value); public long getLong(final String key, long defValue); @@ -232,13 +232,13 @@ public interface CacheSource { public void appendLongListItem(final String key, final long value); - public void removeLongListItem(final String key, final long value); + public int removeLongListItem(final String key, final long value); public boolean existsLongSetItem(final String key, final long value); public void appendLongSetItem(final String key, final long value); - public void removeLongSetItem(final String key, final long value); + public int removeLongSetItem(final String key, final long value); //---------------------- CompletableFuture 异步版 --------------------------------- public CompletableFuture existsAsync(final String key); @@ -297,7 +297,7 @@ public interface CacheSource { public CompletableFuture setExpireSecondsAsync(final String key, final int expireSeconds); - public CompletableFuture removeAsync(final String key); + public CompletableFuture removeAsync(final String key); public CompletableFuture incrAsync(final String key); @@ -363,23 +363,23 @@ public interface CacheSource { public CompletableFuture appendListItemAsync(final String key, final V value); - public CompletableFuture removeListItemAsync(final String key, final V value); + public CompletableFuture removeListItemAsync(final String key, final V value); public CompletableFuture existsSetItemAsync(final String key, final V value); public CompletableFuture appendSetItemAsync(final String key, final V value); - public CompletableFuture removeSetItemAsync(final String key, final V value); + public CompletableFuture removeSetItemAsync(final String key, final V value); public CompletableFuture appendListItemAsync(final String key, final Type componentType, final T value); - public CompletableFuture removeListItemAsync(final String key, final Type componentType, final T value); + public CompletableFuture removeListItemAsync(final String key, final Type componentType, final T value); public CompletableFuture existsSetItemAsync(final String key, final Type componentType, final T value); public CompletableFuture appendSetItemAsync(final String key, final Type componentType, final T value); - public CompletableFuture removeSetItemAsync(final String key, final Type componentType, final T value); + public CompletableFuture removeSetItemAsync(final String key, final Type componentType, final T value); public CompletableFuture> queryKeysAsync(); @@ -411,13 +411,13 @@ public interface CacheSource { public CompletableFuture appendStringListItemAsync(final String key, final String value); - public CompletableFuture removeStringListItemAsync(final String key, final String value); + public CompletableFuture removeStringListItemAsync(final String key, final String value); public CompletableFuture existsStringSetItemAsync(final String key, final String value); public CompletableFuture appendStringSetItemAsync(final String key, final String value); - public CompletableFuture removeStringSetItemAsync(final String key, final String value); + public CompletableFuture removeStringSetItemAsync(final String key, final String value); public CompletableFuture getLongAsync(final String key, long defValue); @@ -439,13 +439,13 @@ public interface CacheSource { public CompletableFuture appendLongListItemAsync(final String key, final long value); - public CompletableFuture removeLongListItemAsync(final String key, final long value); + public CompletableFuture removeLongListItemAsync(final String key, final long value); public CompletableFuture existsLongSetItemAsync(final String key, final long value); public CompletableFuture appendLongSetItemAsync(final String key, final long value); - public CompletableFuture removeLongSetItemAsync(final String key, final long value); + public CompletableFuture removeLongSetItemAsync(final String key, final long value); default CompletableFuture isOpenAsync() { return CompletableFuture.completedFuture(isOpen());