private void Handle(ClusterEvent.UnreachableMember m)
        {
            _log.Info($"Cluster.Unreachable: {m.Member.Address} Role={string.Join(",", m.Member.Roles)}");

            var(key, _) = _nodeMap.FirstOrDefault(i => i.Value.ClusterAddress == m.Member.UniqueAddress);
            if (key != null)
            {
                RemoveNode(key);
            }
        }
コード例 #2
0
        /// <summary>
        /// Handles a <see cref="ClusterEvent.UnreachableMember" /> message by rolling back all tournaments that had
        /// been assigned to that member and removing the member from the cluster.
        /// </summary>
        /// <param name="unreachableMember">The message.</param>
        private void HandleUnreachableMessage(ClusterEvent.UnreachableMember unreachableMember)
        {
            var addressOfUnreachableMember = unreachableMember.Member.Address;

            // Roll back all tournaments assigned to actors placed on unreachable node.
            this._selectionProgress.RollBackOnAddress(addressOfUnreachableMember);

            // Remove node from cluster.
            Cluster.Get(Context.System).Down(addressOfUnreachableMember);

            // See if any of the other workers is free to handle the rolled back tournaments.
            this.AskForWorkers();
        }
コード例 #3
0
        private void OnUnreachableMember(ClusterEvent.UnreachableMember msg)
        {
            Log.Info("{@Event}", msg);

            if (Cluster.SelfAddress.Equals(msg.Member.Address))
            {
                Log.Info("Become Unreachable");
                Become(Unreachable);
            }
            else
            {
                // handle other member being unreachable
            }
        }
コード例 #4
0
        /// <summary>
        /// Handles a <see cref="ClusterEvent.UnreachableMember" /> message by rolling back all evaluations that had been assigned to that member and removing the member from the cluster.
        /// </summary>
        /// <param name="unreachableMember">The message.</param>
        private void HandleUnreachableMessage(ClusterEvent.UnreachableMember unreachableMember)
        {
            var addressOfUnreachableMember = unreachableMember.Member.Address;

            LoggingHelper.WriteLine(VerbosityLevel.Warn, $"Rollback unreachable member with address {addressOfUnreachableMember}!");

            // Roll back all evaluations assigned to actors placed on unreachable node.
            this.RollBackOnAddress(addressOfUnreachableMember);

            // Remove node from cluster.
            Cluster.Get(Context.System).Down(addressOfUnreachableMember);

            // See if any of the other workers is free to handle the rolled back evaluations.
            this.AskForWorkers();
        }
コード例 #5
0
 private void HandleUnreachable(ClusterEvent.UnreachableMember unreachable)
 {
     Log.Info("Member detected as unreachable: {0}", unreachable.Member);
 }
コード例 #6
0
 private void ReceiveMessage(ClusterEvent.UnreachableMember message)
 {
     Console.WriteLine($">>>>>>> {Self} : {message}");
 }