コード例 #1
0
 public KustoHeartBeat(string primaryCluster, string failoverCluster, KustoDataProvider kustoDataProvider, KustoDataProviderConfiguration configuration)
 {
     PrimaryCluster     = primaryCluster;
     FailoverCluster    = failoverCluster;
     UsePrimaryCluster  = true;
     _kustoDataProvider = kustoDataProvider;
     _configuration     = configuration;
 }
コード例 #2
0
        private void Initialize()
        {
            _heartbeats        = new ConcurrentDictionary <string, KustoHeartBeat>();
            _kustoDataProvider = new KustoDataProvider(new OperationDataCache(), _configuration, Guid.NewGuid().ToString(), this);
            _cancellationToken = new CancellationTokenSource();


            foreach (var primaryCluster in _configuration.RegionSpecificClusterNameCollection.Values)
            {
                string failoverCluster = null;
                if (_configuration.FailoverClusterNameCollection.ContainsKey(primaryCluster))
                {
                    failoverCluster = _configuration.FailoverClusterNameCollection[primaryCluster];
                }
                if (!_heartbeats.ContainsKey(primaryCluster) && _heartbeats.TryAdd(primaryCluster, new KustoHeartBeat(primaryCluster, failoverCluster, _kustoDataProvider, _configuration)))
                {
                    // Start threads for each heartbeat on the thread pool
                    Task.Run(() => _heartbeats[primaryCluster].RunHeartBeatTask(_cancellationToken.Token));
                }
            }
        }