コード例 #1
0
ファイル: Router.cs プロジェクト: mantasaudickas/KafkaClient
        private async Task <IImmutableList <DescribeGroupsResponse.Group> > UpdateGroupMetadataFromServerAsync(IEnumerable <string> groupIds, bool ignoreCache, CancellationToken cancellationToken)
        {
            return(await _groupSemaphore.LockAsync(
                       async() => {
                var cachedResults = new CachedResults <DescribeGroupsResponse.Group>(misses: groupIds);
                if (!ignoreCache)
                {
                    cachedResults = CachedResults <DescribeGroupsResponse.Group> .ProduceResults(cachedResults.Misses, groupId => TryGetCachedGroup(groupId, Configuration.CacheExpiration));
                    if (cachedResults.Misses.Count == 0)
                    {
                        return cachedResults.Hits;
                    }
                }

                Log.Info(() => LogEvent.Create($"Router refreshing metadata for groups {string.Join(",", cachedResults.Misses)}"));
                var request = new DescribeGroupsRequest(cachedResults.Misses);
                var response = await this.SendToAnyAsync(request, cancellationToken).ConfigureAwait(false);

                UpdateGroupCache(response);

                // since the above may take some time to complete, it's necessary to hold on to the groups we found before
                // just in case they expired between when we searched for them and now.
                var result = cachedResults.Hits.AddNotNullRange(response?.groups);
                return result;
            }, cancellationToken).ConfigureAwait(false));
        }
コード例 #2
0
ファイル: Coordinator.cs プロジェクト: lorgine/Chuye.Kafka
        public DescribeGroupsResponse DescribeGroups(IList <String> groupIds)
        {
            //var brokerUri = _client.ExistingBrokerDispatcher.SequentialSelect();
            EnsureCoordinateBrokerExsiting();
            var request  = new DescribeGroupsRequest(groupIds);
            var response = (DescribeGroupsResponse)_client.SubmitRequest(_coordinateBroker, request);

            response.TryThrowFirstErrorOccured();
            return(response);
        }
コード例 #3
0
        public void DescribeGroupsRequest(
            [Values("test", "a groupId")] string groupId,
            [Range(1, 10)] int count)
        {
            var groups = new string[count];

            for (var g = 0; g < count; g++)
            {
                groups[g] = groupId + g;
            }
            var request = new DescribeGroupsRequest(groups);

            request.AssertCanEncodeDecodeRequest(0);
        }
コード例 #4
0
        /// <summary>
        /// 查询所有的图库信息。
        /// </summary>
        /// <param name="req"><see cref="DescribeGroupsRequest"/></param>
        /// <returns><see cref="DescribeGroupsResponse"/></returns>
        public DescribeGroupsResponse DescribeGroupsSync(DescribeGroupsRequest req)
        {
            JsonResponseModel <DescribeGroupsResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "DescribeGroups");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <DescribeGroupsResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
コード例 #5
0
        public void DescribeGroupsRequest()
        {
            var request = new DescribeGroupsRequest();

            request.Groups = new[] { Guid.NewGuid().ToString() };

            Stream binary1 = new MemoryStream();

            request.Serialize(binary1);

            binary1.Seek(0L, SeekOrigin.Begin);
            var request2 = new DescribeGroupsRequest();

            request2.Deserialize(binary1);

            var compareLogic = new CompareLogic();
            var result       = compareLogic.Compare(request, request2);

            Assert.True(result.AreEqual);

            Stream binary2 = new MemoryStream();

            request.Serialize(binary2);
            Assert.Equal(binary1.Length, binary2.Length);

            using (var stream1 = new MemoryStream())
                using (var stream2 = new MemoryStream()) {
                    binary1.Seek(0L, SeekOrigin.Begin);
                    binary1.CopyTo(stream1);

                    binary2.Seek(0L, SeekOrigin.Begin);
                    binary2.CopyTo(stream2);

                    Assert.Equal(stream1.Length, stream2.Length);
                    stream1.Seek(0L, SeekOrigin.Begin);
                    var bytes1 = stream1.ToArray();

                    stream2.Seek(0L, SeekOrigin.Begin);
                    var bytes2 = stream2.ToArray();
                    Assert.Equal(bytes1.Length, bytes2.Length);

                    for (int i = 0; i < bytes1.Length; i++)
                    {
                        Assert.Equal(bytes1[i], bytes2[i]);
                    }
                }
        }
コード例 #6
0
 /// <summary>
 ///  批量查询部署组的信息,此接口支持分页查询,默认每页20条
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public async Task <DescribeGroupsResponse> DescribeGroups(DescribeGroupsRequest request)
 {
     return(await new DescribeGroupsExecutor().Client(this).Execute <DescribeGroupsResponse, DescribeGroupsResult, DescribeGroupsRequest>(request).ConfigureAwait(false));
 }
コード例 #7
0
 /// <summary>
 ///  批量查询部署组的信息,此接口支持分页查询,默认每页20条
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public DescribeGroupsResponse DescribeGroups(DescribeGroupsRequest request)
 {
     return(new DescribeGroupsExecutor().Client(this).Execute <DescribeGroupsResponse, DescribeGroupsResult, DescribeGroupsRequest>(request));
 }