コード例 #1
0
        public ConsulServerRegistryConnector(ServerRegistryConnectorLoadData pluginLoadData) : base(pluginLoadData)
        {
            client = new ConsulClient(configuration =>
            {
                if (pluginLoadData.Settings["consulAddress"] != null)
                {
                    configuration.Address = new Uri(pluginLoadData.Settings["consulAddress"]);
                }

                if (pluginLoadData.Settings["consulDatacenter"] != null)
                {
                    configuration.Datacenter = pluginLoadData.Settings["consulDatacenter"];
                }

                if (pluginLoadData.Settings["consulToken"] != null)
                {
                    configuration.Token = pluginLoadData.Settings["consulToken"];
                }
            });

            if (pluginLoadData.Settings["healthCheckUrl"] != null)
            {
                healthCheckUrl = pluginLoadData.Settings["healthCheckUrl"];
            }

            if (pluginLoadData.Settings["healthCheckPollIntervalMs"] != null)
            {
                healthCheckPollInterval = TimeSpan.FromMilliseconds(int.Parse(pluginLoadData.Settings["healthCheckPollIntervalMs"]));
            }

            if (pluginLoadData.Settings["healthCheckTimeoutMs"] != null)
            {
                healthCheckTimeout = TimeSpan.FromMilliseconds(int.Parse(pluginLoadData.Settings["healthCheckTimeoutMs"]));
                if (healthCheckTimeout < TimeSpan.FromMinutes(1))
                {
                    throw new InvalidOperationException("healthCheckTimeout property cannot be less than 1 minute.");
                }
            }

            if (pluginLoadData.Settings["serviceName"] != null)
            {
                serviceName = pluginLoadData.Settings["serviceName"];
            }
        }
コード例 #2
0
 public InMemoryServerRegistryConnector(ServerRegistryConnectorLoadData serverRegistryConnectorLoadData) : base(serverRegistryConnectorLoadData)
 {
     timer = CreateTimer(1000, 1000, FetchServices);
 }
コード例 #3
0
 public ServerRegistryConnector(ServerRegistryConnectorLoadData pluginLoadData) : base(pluginLoadData)
 {
 }