protected override async Task ProcessImpl()
        {
            RegisterWatch(this);
            var result = await _client.GetDataAsync(_path);

            if (result != null)
            {
                _action(_currentData, result);
                this.SetCurrentData(result);
            }
        }
        private async Task <ServiceCommandDescriptor> GetServiceCommand(string path)
        {
            ServiceCommandDescriptor result = null;
            var watcher = new NodeMonitorWatcher(_consul, _manager, path,
                                                 (oldData, newData) => NodeChange(oldData, newData));
            var data = (await _consul.GetDataAsync(path));

            watcher.SetCurrentData(data);
            result = GetServiceCommand(data);

            return(result);
        }
        private async Task <ServiceSubscriber> GetSubscriber(string path)
        {
            ServiceSubscriber result = null;
            var queryResult          = await _consul.KV.Keys(path);

            if (queryResult.Response != null)
            {
                var data = (await _consul.GetDataAsync(path));
                result = await GetSubscriber(data);
            }
            return(result);
        }
        private async Task <ServiceRoute> GetRoute(string path)
        {
            ServiceRoute result  = null;
            var          watcher = new NodeMonitorWatcher(_consul, _manager, path,
                                                          async(oldData, newData) => await NodeChange(oldData, newData));
            var data = (await _consul.GetDataAsync(path));

            watcher.SetCurrentData(data);
            result = await GetRoute(data);

            return(result);
        }
示例#5
0
        protected override async Task ProcessImpl()
        {
            var watcher = new NodeMonitorWatcher(_client, _manager, _path, _action);

            RegisterWatch(watcher);
            var result = await _client.GetDataAsync(_path);

            if (result != null)
            {
                _action(_currentData, result);
                watcher.SetCurrentData(result);
            }
        }
        private async Task <ServiceCache> GetCache(string path)
        {
            ServiceCache result  = null;
            var          watcher = new NodeMonitorWatcher(_consul, _manager, path,
                                                          async(oldData, newData) => await NodeChange(oldData, newData));
            var queryResult = await _consul.KV.Keys(path);

            if (queryResult.Response != null)
            {
                var data = (await _consul.GetDataAsync(path));
                if (data != null)
                {
                    watcher.SetCurrentData(data);
                    result = await GetCache(data);
                }
            }
            return(result);
        }
示例#7
0
        private async Task <MqttServiceRoute> GetRoute(string path)
        {
            MqttServiceRoute result = null;
            var watcher             = new NodeMonitorWatcher(_consul, _manager, path,
                                                             async(oldData, newData) => await NodeChange(oldData, newData), tmpPath => {
                var index = tmpPath.LastIndexOf("/");
                return(_serviceHeartbeatManager.ExistsWhitelist(tmpPath.Substring(index + 1)));
            });

            var queryResult = await _consul.KV.Keys(path);

            if (queryResult.Response != null)
            {
                var data = (await _consul.GetDataAsync(path));
                if (data != null)
                {
                    watcher.SetCurrentData(data);
                    result = await GetRoute(data);
                }
            }
            return(result);
        }