示例#1
0
        public ReceiveGossipThread(GossipNode gossipNode, GossipManager gossipManager)
        {
            _gossipManager = gossipManager;
            _gossipNode    = gossipNode;
            try
            {
                Logger.Debug($"Gossip service successfully initialized on {_gossipNode.GossipPeer.EndPoint}");
                Logger.Debug($"I am {_gossipNode.GossipPeer}");

                _cluster = _gossipNode.GossipPeer.ClusterName;

                if (_cluster == null)
                {
                    throw new ArgumentNullException("cluster was null");
                }
            }
            catch (Exception ex)
            {
                Logger.Warn(ex);
                throw;
            }
            _keepRunning = true;

            TaskScheduler.UnobservedTaskException += OnUnobservedTaskException;
        }
示例#2
0
        public GossipNode(GossipSettings settings)
        {
            _settings      = settings;
            _gossipManager = new GossipManager(this);
            _remotePeers   = new ConcurrentDictionary <string, IGossipPeer>();

            _gossipPeer = new GossipPeer(settings.ClusterName, new IPEndPoint(IPAddress.Any, settings.Port), settings.Id, DateTime.MinValue);
        }
示例#3
0
        public SendGossipThread(GossipNode gossipNode, GossipManager gossipManager)
        {
            _gossipNode    = gossipNode;
            _random        = new Random();
            _gossipManager = gossipManager;

            _replyTimer     = new Timer(new TimerCallback(ReplyTimerHandle));
            _heartbeatTimer = new Timer(new TimerCallback(HeartbeatTimerHandle));
        }