Пример #1
0
        // ReSharper disable once ContextualLoggerProblem
        public HighWaterAgent(IHighWaterDetector detector, ShardStateTracker tracker, ILogger logger, DaemonSettings settings, CancellationToken token)
        {
            _detector = detector;
            _tracker  = tracker;
            _logger   = logger;
            _settings = settings;
            _token    = token;

            _timer = new Timer(_settings.HealthCheckPollingTime.TotalMilliseconds)
            {
                AutoReset = true
            };
            _timer.Elapsed += TimerOnElapsed;
        }
Пример #2
0
        public ShardActionWatcher(ShardStateTracker tracker, string shardName, ShardAction expected, TimeSpan timeout)
        {
            _shardName  = shardName;
            _expected   = expected;
            _completion = new TaskCompletionSource <ShardState>();


            _timeout = new CancellationTokenSource(timeout);
            _timeout.Token.Register(() =>
            {
                _completion.TrySetException(new TimeoutException(
                                                $"Shard {_shardName} did receive the action {_expected} in the time allowed"));
            });

            _unsubscribe = tracker.Subscribe(this);
        }