/// <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); }
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)); } } }