Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
 internal PublishEvent(ClusterEvent.IClusterDomainEvent @event)
 {
     _event = @event;
 }