Пример #1
0
 public GrpcClientProvider(IServiceProvider serviceProvider,
                           IOptionsMonitor <GrpcClientFactoryOptions> clientFactoryOptionsMonitor,
                           IGrpcServiceAddressResolver <TClient> resolver)
 {
     _serviceProvider             = serviceProvider;
     _clientFactoryOptionsMonitor = clientFactoryOptionsMonitor;
     _resolver           = resolver;
     _resolver.OnChange += (_, _) => OnChange();
     CurrentAddress      = _resolver.GetAddress();
 }
Пример #2
0
        public Task <HealthCheckResult> CheckHealthAsync(HealthCheckContext context,
                                                         CancellationToken cancellationToken = new CancellationToken())
        {
            HealthCheckResult result;
            var uri = _resolver.GetAddress();

            if (uri != null)
            {
                result = HealthCheckResult.Healthy();
            }
            else
            {
                result = HealthCheckResult.Unhealthy("Empty url");
            }

            return(Task.FromResult(result));
        }
Пример #3
0
        private void OnChange()
        {
            var options = _clientFactoryOptionsMonitor.Get(typeof(TClient).Name);

            CurrentAddress = options.Address = _resolver.GetAddress();
        }