public void Handle(GossipMessage.GossipReceived message) { if (_state != GossipState.Working) { return; } var oldCluster = _cluster; _cluster = MergeClusters(_cluster, message.ClusterInfo, message.Server, x => x.InstanceId == NodeInfo.InstanceId ? GetUpdatedMe(x) : x); message.Envelope.ReplyWith(new GossipMessage.SendGossip(_cluster, NodeInfo.InternalHttp)); if (_cluster.HasChangedSince(oldCluster)) { LogClusterChange(oldCluster, _cluster, string.Format("gossip received from [{0}]", message.Server)); } _bus.Publish(new GossipMessage.GossipUpdated(_cluster)); }
public void Handle(GossipMessage.GossipReceived message) { if (_state != GossipState.Working) { return; } var oldCluster = _cluster; _cluster = MergeClusters(_cluster, message.ClusterInfo, message.Server, x => x.InstanceId == NodeInfo.InstanceId ? GetUpdatedMe(x) : x, _timeProvider.UtcNow, NodeInfo, CurrentLeader, AllowedTimeDifference, DeadMemberRemovalPeriod); message.Envelope.ReplyWith(new GossipMessage.SendGossip(_cluster, NodeInfo.InternalHttp)); if (_cluster.HasChangedSince(oldCluster)) { LogClusterChange(oldCluster, _cluster, $"gossip received from [{message.Server}]"); } _bus.Publish(new GossipMessage.GossipUpdated(_cluster)); }