Exemplo n.º 1
0
        public async Task <string> GetServiceEndpointFromConsulAgent(string appName)
        {
            IRestCommandResult <List <CatalogService> > results = null;

            try
            {
                results = await GetServiceEndpointsFromConsul(appName);
            }
            catch (NullReferenceException ex)
            {
                _logger.Error(ex, appName);
            }
            catch (ServiceNotRunningException ex)
            {
                _logger.Error(ex, appName);
            }

            var selectedEndpoint = GetRandomEndpointFromResults(results);

            if (selectedEndpoint != null)
            {
                return($"http://{selectedEndpoint.ServiceAddress}:{selectedEndpoint.ServicePort}");
            }
            return("error");
        }
Exemplo n.º 2
0
        private CatalogService GetRandomEndpointFromResults(IRestCommandResult <List <CatalogService> > results)
        {
            var randomizer = new Random(DateTime.Now.Millisecond);

            if (results.Data != null)
            {
                return(results.Data[randomizer.Next(0, results.Data.Count - 1)]);
            }
            return(null);
        }