From 0149b05b6fa6d3bfde571149f84580444ce932b6 Mon Sep 17 00:00:00 2001 From: Nikita <abracham.mitchell@gmail.com> Date: Fri, 5 May 2017 13:56:01 +0300 Subject: [PATCH] RRemoteService.getFreeWorkers method added --- .../src/main/java/org/redisson/RedissonRemoteService.java | 6 ++++++ .../src/main/java/org/redisson/api/RRemoteService.java | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/redisson/src/main/java/org/redisson/RedissonRemoteService.java b/redisson/src/main/java/org/redisson/RedissonRemoteService.java index 17cf21b90..7148153f1 100644 --- a/redisson/src/main/java/org/redisson/RedissonRemoteService.java +++ b/redisson/src/main/java/org/redisson/RedissonRemoteService.java @@ -101,6 +101,12 @@ public class RedissonRemoteService extends BaseRemoteService implements RRemoteS } } + @Override + public int getFreeWorkers(Class<?> remoteInterface) { + Set<RFuture<RemoteServiceRequest>> futuresSet = futures.get(remoteInterface); + return futuresSet.size(); + } + @Override public <T> void register(Class<T> remoteInterface, T object, int workers) { register(remoteInterface, object, workers, commandExecutor.getConnectionManager().getExecutor()); diff --git a/redisson/src/main/java/org/redisson/api/RRemoteService.java b/redisson/src/main/java/org/redisson/api/RRemoteService.java index ea6db3219..20c99f4a5 100644 --- a/redisson/src/main/java/org/redisson/api/RRemoteService.java +++ b/redisson/src/main/java/org/redisson/api/RRemoteService.java @@ -57,6 +57,14 @@ import java.util.concurrent.TimeUnit; */ public interface RRemoteService { + /** + * Returns free workers amount available for tasks + * + * @param remoteInterface - remote service interface + * @return workers amount + */ + int getFreeWorkers(Class<?> remoteInterface); + /** * Register remote service with single worker *