示例#1
0
        public void Handle(GossipMessage.GotGossipSeedSources message)
        {
            var now        = DateTime.UtcNow;
            var dnsCluster = new ClusterInfo(
                message.GossipSeeds.Select(x => MemberInfo.ForManager(Guid.Empty, now, true, x, x)).ToArray());

            var oldCluster = _cluster;

            _cluster = MergeClusters(_cluster, dnsCluster, null, x => x);
            LogClusterChange(oldCluster, _cluster, null);

            _state = GossipState.Working;
            Handle(new GossipMessage.Gossip(0)); // start gossiping
        }
示例#2
0
        public void Handle(GossipMessage.GotGossipSeedSources message)
        {
            var now        = _timeProvider.UtcNow;
            var dnsCluster = new ClusterInfo(
                message.GossipSeeds.Select(x => MemberInfo.ForManager(Guid.Empty, now, true, x, x)).ToArray());

            var oldCluster = _cluster;

            _cluster = MergeClusters(_cluster, dnsCluster, null, x => x, _timeProvider.UtcNow, NodeInfo, CurrentLeader,
                                     AllowedTimeDifference, DeadMemberRemovalPeriod);
            LogClusterChange(oldCluster, _cluster, null);

            _state = GossipState.Working;
            Handle(new GossipMessage.Gossip(0));
        }