Beispiel #1
0
        private async Task <IRingMasterRequestHandler> ConnectToRingMaster(long iteration, CancellationToken cancellationToken)
        {
            using (var serviceDiscovery = new ServiceDiscovery())
            {
                IReadOnlyList <Uri> endpoints = await serviceDiscovery.GetServiceEndpoints(this.ringMasterServiceUri, ServiceEndpointName);

                if (endpoints.Count == 0 || string.IsNullOrEmpty(endpoints[0].Host) || endpoints[0].Port <= 0)
                {
                    return(null);
                }

                var    configuration    = new RingMasterClient.Configuration();
                string connectionString = $"{endpoints[0].Host}:{endpoints[0].Port}";
                RingMasterWatchdogEventSource.Log.ConnectToRingMaster(iteration, connectionString);
                return(new RingMasterClient(connectionString, configuration, null, cancellationToken));
            }
        }