From a7a3fa5a7f0da1b615386ed9b4ecd7215828a841 Mon Sep 17 00:00:00 2001 From: mrniko <1104661+mrniko@users.noreply.github.com> Date: Thu, 20 Feb 2025 11:44:00 +0300 Subject: [PATCH] Feature - RExecutorService.deregisterWorkers() method added. #6448 --- .../main/java/org/redisson/RedissonExecutorService.java | 7 ++++++- .../src/main/java/org/redisson/api/RExecutorService.java | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/redisson/src/main/java/org/redisson/RedissonExecutorService.java b/redisson/src/main/java/org/redisson/RedissonExecutorService.java index 4713a7b4d..d1775ebe7 100644 --- a/redisson/src/main/java/org/redisson/RedissonExecutorService.java +++ b/redisson/src/main/java/org/redisson/RedissonExecutorService.java @@ -471,12 +471,17 @@ public class RedissonExecutorService implements RScheduledExecutorService { } @Override - public void shutdown() { + public void deregisterWorkers() { queueTransferService.remove(getName()); remoteService.deregister(RemoteExecutorService.class); if (workersGroupListenerId != 0) { workersTopic.removeListener(workersGroupListenerId); } + } + + @Override + public void shutdown() { + deregisterWorkers(); commandExecutor.get(commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_VOID, "if redis.call('exists', KEYS[2]) == 0 then " diff --git a/redisson/src/main/java/org/redisson/api/RExecutorService.java b/redisson/src/main/java/org/redisson/api/RExecutorService.java index 9f2e10900..da9578083 100644 --- a/redisson/src/main/java/org/redisson/api/RExecutorService.java +++ b/redisson/src/main/java/org/redisson/api/RExecutorService.java @@ -202,6 +202,12 @@ public interface RExecutorService extends ExecutorService, RExecutorServiceAsync */ void registerWorkers(WorkerOptions options); + /** + * Deregister all workers + * + */ + void deregisterWorkers(); + /** * Returns amount of tasks awaiting execution or currently in execution. *