public RemotingResponse HandleRequest(IRequestHandlerContext context, RemotingRequest remotingRequest) { var request = _binarySerializer.Deserialize <QueryConsumerInfoRequest>(remotingRequest.Body); var consumerInfoList = new List <ConsumerInfo>(); if (!string.IsNullOrEmpty(request.GroupName)) { var consumerGroups = _consumerManager.QueryConsumerGroup(request.GroupName); foreach (var consumerGroup in consumerGroups) { foreach (var topicConsumeInfo in GetConsumerInfoForGroup(consumerGroup, request.Topic)) { consumerInfoList.Add(topicConsumeInfo); } } } else { var consumerGroups = _consumerManager.GetAllConsumerGroups(); foreach (var consumerGroup in consumerGroups) { foreach (var topicConsumeInfo in GetConsumerInfoForGroup(consumerGroup, request.Topic)) { consumerInfoList.Add(topicConsumeInfo); } } } return(RemotingResponseFactory.CreateResponse(remotingRequest, _binarySerializer.Serialize(consumerInfoList))); }
public RemotingResponse HandleRequest(IRequestHandlerContext context, RemotingRequest remotingRequest) { var request = _binarySerializer.Deserialize <QueryConsumerInfoRequest>(remotingRequest.Body); var consumerInfoList = new List <ConsumerInfo>(); if (!string.IsNullOrEmpty(request.GroupName)) { var consumerGroups = _consumerManager.QueryConsumerGroup(request.GroupName); foreach (var consumerGroup in consumerGroups) { foreach (var topicConsumeInfo in GetConsumerInfoForGroup(consumerGroup, request.Topic)) { consumerInfoList.Add(topicConsumeInfo); } } } else { var consumerGroups = _consumerManager.GetAllConsumerGroups(); foreach (var consumerGroup in consumerGroups) { foreach (var topicConsumeInfo in GetConsumerInfoForGroup(consumerGroup, request.Topic)) { consumerInfoList.Add(topicConsumeInfo); } } } var data = _binarySerializer.Serialize(consumerInfoList); return(new RemotingResponse((int)ResponseCode.Success, remotingRequest.Sequence, data)); }
public RemotingResponse HandleRequest(IRequestHandlerContext context, RemotingRequest remotingRequest) { if (BrokerController.Instance.IsCleaning) { throw new BrokerCleanningException(); } var request = _binarySerializer.Deserialize <QueryConsumerInfoRequest>(remotingRequest.Body); var consumerInfoList = new List <ConsumerInfo>(); var consumerGroups = default(IEnumerable <ConsumerGroup>); var allConsumerGroupNames = _offsetStore.GetAllConsumerGroupNames(); if (!string.IsNullOrEmpty(request.GroupName)) { consumerGroups = _consumerManager.QueryConsumerGroup(request.GroupName); } else { consumerGroups = _consumerManager.GetAllConsumerGroups(); } var notEmptyConsumerGroups = _consumerManager.GetAllConsumerGroups().Where(x => x.GetConsumerCount() > 0); var emptyConsumerGroups = allConsumerGroupNames.Where(x => notEmptyConsumerGroups.Count() == 0 || !notEmptyConsumerGroups.Any(y => y.GroupName == x)); foreach (var groupName in emptyConsumerGroups) { consumerInfoList.Add(BuildConsumerInfoForEmptyGroup(groupName)); } foreach (var consumerGroup in consumerGroups) { consumerInfoList.AddRange(GetConsumerInfoForGroup(consumerGroup, request.Topic)); } return(RemotingResponseFactory.CreateResponse(remotingRequest, _binarySerializer.Serialize(consumerInfoList))); }