// 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; }
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); }