public NacosConfigurationProvider(NacosConfigurationSource configurationSource)
        {
            _configurationSource = configurationSource;

            _parser = configurationSource.NacosConfigurationParser;

            _client = new NacosMsConfigClient(NullLoggerFactory.Instance, new NacosOptions
            {
                ServerAddresses = configurationSource.ServerAddresses,
                Namespace       = configurationSource.Tenant,
                AccessKey       = configurationSource.AccessKey,
                ClusterName     = configurationSource.ClusterName,
                ContextPath     = configurationSource.ContextPath,
                EndPoint        = configurationSource.EndPoint,
                DefaultTimeOut  = configurationSource.DefaultTimeOut,
                SecretKey       = configurationSource.SecretKey,
                Password        = configurationSource.Password,
                UserName        = configurationSource.UserName,
                ListenInterval  = 20000
            });

            if (configurationSource.Listeners != null && configurationSource.Listeners.Any())
            {
                var tasks = new List <Task>();

                foreach (var item in configurationSource.Listeners)
                {
                    tasks.Add(_client.AddListenerAsync(new AddListenerRequest
                    {
                        DataId    = item.DataId,
                        Group     = item.Group,
                        Tenant    = configurationSource.Tenant,
                        Callbacks = new System.Collections.Generic.List <Action <string> >
                        {
                            x => CallBackReload(x, item.Optional)
                        }
                    }));
                }

                Task.WhenAll(tasks).ConfigureAwait(false);
            }
            else
            {
                _client.AddListenerAsync(new AddListenerRequest
                {
#pragma warning disable CS0618
                    DataId    = _configurationSource.DataId,
                    Group     = _configurationSource.Group,
                    Tenant    = _configurationSource.Tenant,
                    Callbacks = new System.Collections.Generic.List <Action <string> >
                    {
                        x => CallBackReload(x, _configurationSource.Optional)
                    }
#pragma warning restore CS0618
                });
            }
        }
        public NacosConfigurationProvider(NacosConfigurationSource configurationSource)
        {
            _configurationSource = configurationSource;

            _parser = configurationSource.NacosConfigurationParser ?? JsonConfigurationStringParser.Instance;

            _client = new NacosMsConfigClient(NullLoggerFactory.Instance, new NacosOptions
            {
                ServerAddresses = configurationSource.ServerAddresses,
                Namespace       = configurationSource.Tenant,
                AccessKey       = configurationSource.AccessKey,
                ClusterName     = configurationSource.ClusterName,
                ContextPath     = configurationSource.ContextPath,
                EndPoint        = configurationSource.EndPoint,
                DefaultTimeOut  = configurationSource.DefaultTimeOut,
                SecretKey       = configurationSource.SecretKey,
                Password        = configurationSource.Password,
                UserName        = configurationSource.UserName,
                ListenInterval  = 5000
            });

            _client.AddListenerAsync(new AddListenerRequest
            {
                DataId    = _configurationSource.DataId,
                Group     = _configurationSource.Group,
                Tenant    = _configurationSource.Tenant,
                Callbacks = new System.Collections.Generic.List <Action <string> >
                {
                    x => CallBackReload(x)
                }
            });
        }
Exemplo n.º 3
0
 protected override async Task ExecuteAsync(CancellationToken stoppingToken)
 {
     await _configClient.AddListenerAsync(new AddListenerRequest
     {
         DataId    = "demo1",
         Callbacks = new List <Action <string> >
         {
             x => {
                 _logger.LogInformation($"We found something changed!!! {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}  [{x}]");
             }
         }
     });
 }
        protected internal async Task <string> RemoteLoadAsync(string dataId, string group, bool isRefreable)
        {
            // Get client if not already set
            if (_client == null)
            {
                _client = GetNacosClient(_settings, _clientFactory, _processor, _loggerFactory);
            }

            GetConfigRequest request = new GetConfigRequest()
            {
                DataId = dataId,
                Group  = group,
            };

            if (isRefreable)
            {
                AddListenerRequest addListenerRequest = new AddListenerRequest()
                {
                    DataId = dataId, Group = group, Callbacks = new List <Action <string> > {
                        x => { AddPropertySource(Deserialize(dataId, x)); }
                    }
                };

                _client.AddListenerAsync(addListenerRequest);
            }

            Exception error = null;

            try
            {
                var result = await _client.GetConfigAsync(request);

                return(result);
            }
            catch (Exception e)
            {
                error = e;
            }


            if (error != null)
            {
                throw error;
            }

            return(string.Empty);
        }
        public NacosConfigurationProvider(NacosConfigurationSource configurationSource)
        {
            _configurationSource = configurationSource;

            _parser = configurationSource.NacosConfigurationParser ?? JsonConfigurationStringParser.Instance;

            _client = new NacosMsConfigClient(NullLoggerFactory.Instance, new NacosOptions
            {
                ServerAddresses = configurationSource.ServerAddresses,
                Namespace       = configurationSource.Tenant,
                ListenInterval  = 5000
            });

            _client.AddListenerAsync(new AddListenerRequest
            {
                DataId    = _configurationSource.DataId,
                Group     = _configurationSource.Group,
                Tenant    = _configurationSource.Tenant,
                Callbacks = new System.Collections.Generic.List <Action <string> >
                {
                    x => CallBackReload(x)
                }
            });
        }
        public NacosConfigurationProvider(NacosConfigurationSource configurationSource)
        {
            _configurationSource = configurationSource;
            _parser     = configurationSource.NacosConfigurationParser;
            _configDict = new ConcurrentDictionary <string, string>(StringComparer.OrdinalIgnoreCase);

            var nacosLoggerFactory = Nacos.Microsoft.Extensions.Configuration.NacosLog.NacosLoggerFactory.GetInstance(configurationSource.LoggingBuilder);

            _logger = nacosLoggerFactory.CreateLogger <NacosConfigurationProvider>();

            _client = new NacosMsConfigClient(nacosLoggerFactory, new NacosOptions
            {
                ServerAddresses = configurationSource.ServerAddresses,
                Namespace       = configurationSource.Tenant,
                AccessKey       = configurationSource.AccessKey,
                ClusterName     = configurationSource.ClusterName,
                ContextPath     = configurationSource.ContextPath,
                EndPoint        = configurationSource.EndPoint,
                DefaultTimeOut  = configurationSource.DefaultTimeOut,
                SecretKey       = configurationSource.SecretKey,
                Password        = configurationSource.Password,
                UserName        = configurationSource.UserName,
                ListenInterval  = 20000
            });

            if (configurationSource.Listeners != null && configurationSource.Listeners.Any())
            {
                var tasks = new List <Task>();

                foreach (var item in configurationSource.Listeners)
                {
                    tasks.Add(_client.AddListenerAsync(new AddListenerRequest
                    {
                        DataId    = item.DataId,
                        Group     = item.Group,
                        Tenant    = configurationSource.Tenant,
                        Callbacks = new System.Collections.Generic.List <Action <string> >
                        {
                            x => CallBackReload($"{configurationSource.Tenant}#{item.Group}#{item.DataId}", x, item.Optional)
                        }
                    }));
                }

                Task.WhenAll(tasks).ConfigureAwait(false);
            }
            else
            {
                _client.AddListenerAsync(new AddListenerRequest
                {
#pragma warning disable CS0618
                    DataId    = _configurationSource.DataId,
                    Group     = _configurationSource.Group,
                    Tenant    = _configurationSource.Tenant,
                    Callbacks = new System.Collections.Generic.List <Action <string> >
                    {
                        x => CallBackReload($"{_configurationSource.Tenant}#{_configurationSource.Group}#{_configurationSource.DataId}", x, _configurationSource.Optional)
                    }
#pragma warning restore CS0618
                });
            }
        }