diff --git a/application/src/main/java/org/thingsboard/server/service/queue/ruleengine/TbRuleEngineQueueConsumerManager.java b/application/src/main/java/org/thingsboard/server/service/queue/ruleengine/TbRuleEngineQueueConsumerManager.java index 4df0a900d2..0fb005b928 100644 --- a/application/src/main/java/org/thingsboard/server/service/queue/ruleengine/TbRuleEngineQueueConsumerManager.java +++ b/application/src/main/java/org/thingsboard/server/service/queue/ruleengine/TbRuleEngineQueueConsumerManager.java @@ -434,6 +434,8 @@ public class TbRuleEngineQueueConsumerManager { consumers.get(tpi).initiateStop(); }); + List removedTasks = removedPartitions.stream() + .map(consumers::remove).toList(); // ctx.getQueueAdmin().createTopicIfNotExists(); addedPartitions.forEach((tpi) -> { @@ -444,6 +446,8 @@ public class TbRuleEngineQueueConsumerManager { consumer.subscribe(Set.of(tpi)); launchConsumer(consumer); }); + + removedTasks.forEach(TbQueueConsumerTask::awaitCompletion); } @Override