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)); }
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); }
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); }
/// <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); }
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]); } } }
/// <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)); }
/// <summary> /// 批量查询部署组的信息,此接口支持分页查询,默认每页20条 /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public DescribeGroupsResponse DescribeGroups(DescribeGroupsRequest request) { return(new DescribeGroupsExecutor().Client(this).Execute <DescribeGroupsResponse, DescribeGroupsResult, DescribeGroupsRequest>(request)); }