diff options
author | Harald Musum <musum@yahoo-inc.com> | 2017-05-23 12:52:34 +0200 |
---|---|---|
committer | Harald Musum <musum@yahoo-inc.com> | 2017-05-23 12:52:34 +0200 |
commit | aaca2350ade401c521e4127d294593c26e0c77fc (patch) | |
tree | 384b32ef07885e86bcaddc6bf48fb11b1990454c /configserver | |
parent | 458433c2a4e33459fa21fb6ecd6b212bcc7280cd (diff) |
Redeploy applications in server thread instead of constructor
* Redeploying applications takes a long time, we do not want
delay or hinder discovery of issues with component construction
due to using a long time in this constructor
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java index ddf318eed9f..1af101c074e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java @@ -18,21 +18,22 @@ import com.yahoo.vespa.config.server.version.VersionState; public class ConfigServerBootstrap extends AbstractComponent implements Runnable { private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(ConfigServerBootstrap.class.getName()); + + private final Tenants tenants; private final RpcServer server; private final Thread serverThread; + private final Deployer deployer; + private final VersionState versionState; // The tenants object is injected so that all initial requests handlers are - // added to the rpcserver before it starts answering rpc requests. + // added to the rpc server before it starts answering rpc requests. @SuppressWarnings("UnusedParameters") @Inject public ConfigServerBootstrap(Tenants tenants, RpcServer server, Deployer deployer, VersionState versionState) { + this.tenants = tenants; this.server = server; - if (versionState.isUpgraded()) { - log.log(LogLevel.INFO, "Configserver upgraded from " + versionState.storedVersion() + " to " + versionState.currentVersion() + ". Redeploying all applications"); - tenants.redeployApplications(deployer); - log.log(LogLevel.INFO, "All applications redeployed"); - } - versionState.saveNewVersion(); + this.deployer = deployer; + this.versionState = versionState; this.serverThread = new Thread(this, "configserver main"); serverThread.start(); } @@ -50,6 +51,12 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable @Override public void run() { + if (versionState.isUpgraded()) { + log.log(LogLevel.INFO, "Configserver upgraded from " + versionState.storedVersion() + " to " + versionState.currentVersion() + ". Redeploying all applications"); + tenants.redeployApplications(deployer); + log.log(LogLevel.INFO, "All applications redeployed"); + } + versionState.saveNewVersion(); log.log(LogLevel.DEBUG, "Starting RPC server"); server.run(); log.log(LogLevel.DEBUG, "RPC server stopped"); |