private void HandleClusterEvent(ClusterEvent.IClusterDomainEvent e) { if (e is ClusterEvent.MemberUp) { var m = ((ClusterEvent.MemberUp)e).Member; if (MatchingRole(m)) { ChangeMembers(MembersByAge.Add(m)); } } else if (e is ClusterEvent.MemberRemoved) { var m = ((ClusterEvent.MemberRemoved)e).Member; if (m.UniqueAddress == Cluster.SelfUniqueAddress) { Context.Stop(Self); } else if (MatchingRole(m)) { ChangeMembers(MembersByAge.Remove(m)); } } else { Unhandled(e); } }
private void HandleClusterEvent(ClusterEvent.IClusterDomainEvent e) { if (e is ClusterEvent.MemberUp) { var m = ((ClusterEvent.MemberUp)e).Member; if (MatchingRole(m)) { ChangeMembers(MembersByAge.Remove(m).Add(m)); // replace } } else if (e is ClusterEvent.MemberRemoved) { var m = ((ClusterEvent.MemberRemoved)e).Member; if (m.UniqueAddress == Cluster.SelfUniqueAddress) { Context.Stop(Self); } else if (MatchingRole(m)) { ChangeMembers(MembersByAge.Remove(m)); } } else if (e is ClusterEvent.IMemberEvent) { // these are expected, no need to warn about them } else { Unhandled(e); } }
private void HandleMemberEvents(ClusterEvent.IClusterDomainEvent e) { switch (e) { case ClusterEvent.MemberUp up: var member = up.Member; _log.Info($">> Member is Up: {member.Address}"); _nodes.Add(member); _requestNumber.Add(member.Address, 0); if (bool.Parse(Environment.GetEnvironmentVariable("IS_AKKA_SEED"))) { if (_token == null) { _token = new Token(new Dictionary <Address, int>(), new Queue <Address>()); } _token.LastRequestNumber.Add(member.Address, 0); } break; case ClusterEvent.UnreachableMember unreachable: _log.Warning($">> Member detected as unreachable: {unreachable.Member.Address}"); break; case ClusterEvent.MemberRemoved removed: _log.Warning($">> Member is Removed: {removed.Member.Address}"); break; } }
private void HandleClusterEvent(ClusterEvent.IClusterDomainEvent e) { switch (e) { case ClusterEvent.MemberUp mu: { var m = mu.Member; if (MatchingRole(m)) { ChangeMembers(MembersByAge.Remove(m).Add(m)); // replace } } break; case ClusterEvent.MemberRemoved mr: { var m = mr.Member; if (m.UniqueAddress == Cluster.SelfUniqueAddress) { Context.Stop(Self); } else if (MatchingRole(m)) { ChangeMembers(MembersByAge.Remove(m)); } } break; case ClusterEvent.MemberDowned md: if (md.Member.UniqueAddress == Cluster.SelfUniqueAddress) { Context.Stop(Self); } Log.Info("Self downed, stopping ShardRegion [{0}]", Self.Path); break; case ClusterEvent.IMemberEvent _: // these are expected, no need to warn about them break; default: Unhandled(e); break; } }
internal PublishEvent(ClusterEvent.IClusterDomainEvent @event) { _event = @event; }