protected void Process(RedisAsyncRequest[] requests) { if (requests != null) { var count = requests.Length; if (count > 0) { var commands = requests.Select(r => r.Command).ToArray(); var results = m_AsyncClient.Expect(commands); for (var i = 0; i < count; i++) { var request = requests[i]; if (request.Expectation == RedisCommandExpect.Void) { request.Response = new RedisVoid(0); } else { request.Response = ToExpectation(results[i], request.Expectation, request.ExpectedResult); } } } } }
private NodeRoleAndSiblings GetSiblingSentinelsOfSentinel(string masterName, RedisAsyncClient client) { if (masterName.IsEmpty()) { throw new ArgumentNullException("masterName"); } try { var response = client.Expect(new RedisCommand(-1, RedisCommandList.Sentinel, RedisCommandType.SendAndReceive, RedisCommandList.Sentinels, masterName.ToBytes())); if (!ReferenceEquals(response, null) && response.Type == RedisResultType.Array) { var result = response as RedisArray; if (!ReferenceEquals(result, null)) { var sentinelInfos = RedisSentinelNodeInfo.ParseInfoResponse(result); if (sentinelInfos != null) { var length = sentinelInfos.Length; if (length > 0) { var siblingEndPoints = new List <RedisEndPoint>(length); for (var i = 0; i < length; i++) { var sentinelInfo = sentinelInfos[i]; if (!Disposed && sentinelInfo != null && sentinelInfo.Port.HasValue && !sentinelInfo.IPAddress.IsEmpty()) { siblingEndPoints.Add(new RedisEndPoint(sentinelInfo.IPAddress, (int)sentinelInfo.Port.Value)); } } if (!Disposed) { return(new NodeRoleAndSiblings(RedisRole.Sentinel, siblingEndPoints.ToArray())); } } } } } } catch (Exception) { } return(null); }