diff options
author | jonmv <venstad@gmail.com> | 2023-07-14 09:27:22 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-07-14 09:27:22 +0200 |
commit | 9c208cbc41ae710b6bacbd34455b386d27ad7781 (patch) | |
tree | ad34fd10c923aa3ea96b078f1cfe69bab2482890 /container-search/src/main/java/com/yahoo/search/dispatch/ReconfigurableDispatcher.java | |
parent | 03074301a808b0f576a616665e8fb1e12884ea86 (diff) |
Set up reconfigurable dispatcher with self-subscription instead
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/ReconfigurableDispatcher.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/dispatch/ReconfigurableDispatcher.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/ReconfigurableDispatcher.java b/container-search/src/main/java/com/yahoo/search/dispatch/ReconfigurableDispatcher.java new file mode 100644 index 00000000000..625a8bcb6da --- /dev/null +++ b/container-search/src/main/java/com/yahoo/search/dispatch/ReconfigurableDispatcher.java @@ -0,0 +1,37 @@ +package com.yahoo.search.dispatch; + +import com.yahoo.component.ComponentId; +import com.yahoo.config.subscription.ConfigSubscriber; +import com.yahoo.container.handler.VipStatus; +import com.yahoo.messagebus.network.rpc.SlobrokConfigSubscriber; +import com.yahoo.vespa.config.search.DispatchConfig; +import com.yahoo.vespa.config.search.DispatchNodesConfig; +import com.yahoo.yolean.UncheckedInterruptedException; + +import java.util.Objects; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; + +import static java.util.Objects.requireNonNull; + +/** + * @author jonmv + */ +public class ReconfigurableDispatcher extends Dispatcher { + + private final ConfigSubscriber subscriber; + + public ReconfigurableDispatcher(ComponentId clusterId, DispatchConfig dispatchConfig, VipStatus vipStatus) { + super(clusterId, dispatchConfig, new DispatchNodesConfig.Builder().build(), vipStatus); + this.subscriber = new ConfigSubscriber(); + this.subscriber.subscribe(this::updateWithNewConfig, DispatchNodesConfig.class, clusterId.stringValue()); + } + + @Override + public void deconstruct() { + subscriber.close(); + super.deconstruct(); + } + +} |