/// <summary>
        /// When the node becomes reachable again, force reinitialization
        /// </summary>
        /// <param name="msg"></param>
        private void OnReachableMember(ClusterEvent.ReachableMember msg)
        {
            Log.Info("{@Event}", msg);

            if (!Cluster.SelfAddress.Equals(msg.Member.Address))
            {
                return;
            }

            Become(Initializing);
        }
Exemplo n.º 2
0
        private void Handle(ClusterEvent.ReachableMember m)
        {
            if (_cluster != null)
            {
                if (_cluster.SelfUniqueAddress == m.Member.UniqueAddress)
                {
                    var roles = string.Join(", ", _cluster.SelfRoles);
                    _log.Info($"Cluster.RechableMe: {_cluster.SelfUniqueAddress} Role={roles}");
                }
                else
                {
                    _log.Info($"Cluster.Rechable: {m.Member.Address} Role={string.Join(",", m.Member.Roles)}");

                    var remoteDiscoveryActor = Context.ActorSelection(m.Member.Address + "/user/" + _name);
                    remoteDiscoveryActor.Tell(
                        new ClusterActorDiscoveryMessage.ResyncCluster(
                            _cluster.SelfUniqueAddress,
                            _actorItems.Select(a => new ClusterActorDiscoveryMessage.ClusterActorUp(a.Actor, a.Tag)).ToList(),
                            true));
                }
            }
        }